Update RichTextEditor with async UndoManager

Basically we're putting the burden of creating and resolving promises
on whomever is using the undoManager service.