Added on-disconnect code to persist through server failure.
Attempting to allow client to reconnect to new server.
Held tcp-client creation until after server establishment.
Updated server reboot code.
Holding server connection until server can reboot.
Ensure all agents have run a heartbeat before engaging in discovery
protocol.
Implement clojure's tail-end recursion (loop-recur) to avoid stack leak
on server reboot.
Attempting to  rebuild network-dependent tasks on server reboot.
Rebuild tasks (logical channels) on server reboot.
Merged the server-reboot branch