Implement command-based CLI, and start cluster-bringup

This change adds a CLI styled after the Go tool chain, with a design
inspired by that system. It adds 4 new commands, 'run',
'create-cluster', 'join-cluster', and 'version'. Full help is also
supplied.

Local-mode 'run' is fully functional, and 'create-cluster' also works.
The `pidFile` and `hostname` aren't used by all the commands so i would move those to the commands they're used by. Honestly, I'd just drop the shared flags entirely and duplicate the `configFile` in each `FlagSet`. The shared flags have the unpleasant side effect of adding global variables.