Expose the command API

This adds the `Command` and `CommandManager` classes and exposes the `Editor.commands` getter to fix #36