allow a no-watchers state

in order to support the use case of dynamic registration, nerve should continue
running even if it was started with no services defined in it's config. this
re-structures the main thread to make that possible.

the main action of the main thread is to sleep, waiting for an interrupt. an
interrupt triggers the reaping of existing watchers, of which there may be
none.

as a byproduct, we create an interface to add additional watchers dynamically.
a hypothetical future TCP server can call `launch_watcher` on the main class to
register a new watcher. similarly, it can call `reap_watcher` to kill a watcher.
Merge pull request #22 from airbnb/allow_nowatchers

allow a no-watchers state