Completed nested command support.

Nested command support was almost completely available, however, a few things
seemed to be missing to me.

* `this` context on `action` event listeners was not bound properly.
* We output `help` too early, the deepest referenced command should handle help.
* We did not have `action` handling logic to delegate to subcommands if they existed.

This should address #226, and #1. Pretty much all of the support was already there, and it seemed useful to just connect the wires. I know that #63 referenced using the git subcommand model, which I love and use frequently, but there are several use cases (creating a command framework that loads external "plugin" module commands into the parent executable) that would be more easily expressed with this simple fix to connect the wires for sub-commands.
What's the purpose for these `try`/`catch` blocks?  These are tests, we'd want all exceptions to bubble up.