Rework the way the daemon and server are created. If we might
want to create a daemon, try to grab the lockfile with O_EXCL.
If we got it, create a server and daemon, otherwise try and
connect to the server. If connecting to the server fails (including
after sleeping a little in case the server was recently created),
remove the lockfile and start over.
Other fix: shut down network gracefully on daemon exit.
Fixes#1638