Config precedence

* Moved the configuration parsing out of main into its own package.
* Cleaned up the parsing so each precedence is its own func
* Made the configuration precedence clear:
  defaults -> env variable -> cmd line
* Documented config settings.
* Improved (hopefully) the Redis uri sanitization.
* Minor rename of env and cmdline args to be consistent with other projects (ie making the bind address explicit)
* Cleaned up the usage output when passing invalid flags or -h
* added an extra whitespace char in one of the files to troll @meatballhat