Add support for conf, json, and properties config files

This commit adds support for additional types of configuration files,
other than just .ini.

In particular, we now support:

* java .properties files
* .json files
* .conf files (HOCON/Human-Optimized Config Object Notation :
               https://github.com/typesafehub/config/blob/master/HOCON.md)

This commit is backwards-compatible; existing ini-based configurations
will continue to work unchanged.  However, you may now specify a
.properties, .json, or .conf file for your `--config` cli argument instead
of an .ini file.  Alternately, if you specify a directory, we will
parse all files of type .ini, .properties, .json, .conf in the directory
and merge the results.  An error is raised if a setting is specified
more than once.

Note that the .json and .conf formats support slightly more complex
data structures for configuration values; e.g., nested maps and arrays.
This will make it possible for us to introduce some slightly more
sophisticated configuration options for services in the future.  (One
example is the ability to configure a webserver to listen on multiple
ports, and serve different apps on the different ports.)
Clean up organization of config namespace

No code changes