Support arbitrary command nesting

An alternative approach to #642

Using boonebgorges/wp-cli-buddypress#2 as a test case.

TODO:

* [  ] fix `wp bp`
* [ ] fix `wp bp member generate` (i.e. actual invocation)
* [ ] remove bogus `run` subcommand that shows up when running `wp bp member --help`