Converted Communicator to use promises. Events are now used for communicating, not for commands.

Communicator now returns promises from its commands: `start`, `stop`, `getStatus`, `issueCommand`. The promises are resolved by the back end calling a callback. Back end must now invoke the callback to inform the front end of success or failure. Removed 'fail' event/message because we will now use the callback. Also stopped listening to 'command events' which were events from the vent that were intended for calling commands. Events will only be used to inform the application of changes, not to cause them.