Cylon Subcommands

This patch allows for subcommands to be loaded from `cylon-*` modules, via a registration function that looks something like this:


```coffeescript
registerCommands: ->
  {
    leap: {
      description: "Runs LeapMotion thing"
      command: (args = []) ->
        spawn = require('child_process').spawn
        cmd = require('path').join __dirname, "/../bin/cylon-leap"
        proc = spawn cmd, [], { customFds: [0, 1, 2] }
    }
  }
```

This also means they can define command-line commands without actually having to expose executables in their module.

:cookie: