add `UndoManagerBase` and implement `_EditSessionProxy.undoManager` setter

TODO: doc, test, and example
edit_session_test : add `testSetUndoManager`
UndoManagerBase : dartdoc
undo_manager : small formatting change
Merge pull request #24 from rmsmith/undo_manager_base

Undo manager base