Simplify 'run' control

This change refactors the existing 'run' command such that repeated code
is removed. It uses -- in a much clearer manner -- the existence of the
Broker and Storage directories to work out in which mode it should run.
The only extra piece of state required on a disk is an empty file,
whose simple existence indicates that a local (loopback) client is
needed.

With this change in place the 'join-cluster' and 'create-cluster'
commands are much closer to being fully functional, since they simply
don't create the empty file. Therefore it all just works.