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.
support per-service configuration files

if the 'services_conf_dir' key is defined in the main config hash, look
in that directory for *.json files and add each of them as a service.
expand config dir path for better error msgs
Merge pull request #22 from airbnb/allow_nowatchers

allow a no-watchers state
fixed one variable name and some style nits
Merge pull request #23 from memory/multi-conf

support per-service configuration files
bump version to v0.3.0
Merge pull request #3 from airbnb/master

Updating master