System restart support

__DO NOT MERGE -- must occur in unison with several other repos__

These changes are part of the broader system restart support. On a high level, the following changes were made to epu:

- Add Process Dispatcher "Doctor" actor which is an elected ZK leader that manages Process Dispatcher initialization as well as system boot and recovery. In the near future, this actor will also monitor EE Agent heartbeats and detect missing resources. For system restart support, the Doctor detects system-boot based on a flag in the store. Before allowing any PD work to proceed, the Doctor finds dead processes that should be rescheduled and it moves these to the ``UNSCHEDULED_PENDING`` state. At the end of system boot, these processes are added to the matchmaker queued and scheduled.
- Add a process config option ``process.nosystemrestart`` which is detected by the PD and means to not restart the process under a full system relaunch. This is used for processes, like HA Agents which should be restarted automatically in a running system but started directly by launch plan in a system restart.
- Add ``epu-zktool`` utility command which is used by launch plan to prep ZooKeeper for launches.