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.
Should this be `stateFilename`? Also, I generally don't set a file extension for files I don't want end users to look at or mess with. I think just calling it `state` would be fine.

Also, add a comment.