Added events to the MCP and Robot

* Added "events" attribute to the MCP, Robot, and Device
* Added event discovery endpoints to match command discovery endpoints
* Added event GET endpoints at the MCP and Robot level to match the GET endpoint at the Device
* Provided consistent API ordering at all 3 levels:
  * Command discovery
  * Event discovery
  * Command POST
  * Event GET
It appears in cylon.js the command execution pattern is to issue events for results vs. calling callbacks, which is probably why ping is both a command and an event. MCP implementations could choose to auto-expose these command events in the _events_ hash, or require them to be explicitly defined.