Add support for edn, 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:
    
    * clojure-y .edn files
    * 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.)