start sketching out command interfaces
add CommandManager factory ctor and stub create methods to the Implementation
add _CommandReverseProxy class
add _CommandManagerProxy class
add _CommandProxy class
add command_manager_test
command_manager_test : add `testRemoveCommand` and `testAddCommand`
CommandManager : add `exec` method with test case
command_manager_test : add `testAddCommandSameName`
CommandManager : more dartdoc
Editor : add `commands` getter and test case
Editor : add `execCommand` with test case
Command : add dartdoc and scroll / select 'enums'
CommandManager : change `removeCommand` to take a string `commandName`

Since the js only uses the `name` anyways, this makes the API more
practical to use (don't need to lookup the command object first if you
know what you want to remove).
change `Editor.execCommand` and `CommandManager.exec` to take a String `commandName`

more efficient, practical, and true to the js code (internal uses in
ace.js use strings at the call sites)
CHANGELOG : add notes for command API additions
Merge pull request #37 from rmsmith/commands

Expose the command API