function Command(name, id, commandFn) {
        this._name = name;
        this._id = id;
        this._commandFn = commandFn;
        this._checked = undefined;
        this._enabled = true;
    }
Events:
- enabledStateChange
- checkedStateChange
- keyBindingAdded
- keyBindingRemoved

@constructor
@private
@param {string} name - text that will be displayed in the UI to represent command
@param {string} id
@param {function} commandFn - the function that is called when the command is executed.

TODO: where should this be triggered, The Command or Exports?