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.
Yeah, with the change in place functionality like checking for existence of files is so much clearer, that should be doable. Coding that shortly.