Work in progress adding config file support

This commit is a work in progress and should not be merged. It's for
review only.

This commit makes the following changes:

* Etcd will read from a TOML config file if present, and override
  settings from env vars and the command line.
* Etcd now uses a custom Usage function when producing help output.
* Etcd now has a configuration doc.
* Configuration has been centralize and all access to configuration
  settings goes through a global config var.
* Usage strings have been rewritten for clarity.
* Reading exiting configuration from a JSON file has been removed.

TODO:
* Still need to update existing tests and write new ones to cover
  new functionality.