Lets try this again then...

Revert "Revert "Merge pull request #43 from greboid/master""

This reverts commit e6f7b04e67484a87bb3fbdbc42a522df488de9ea.
Begin making this actually work, still needs more testing.
  - Re-add code to make sure config directory exists.
  - DefaultsConfig and ReadOnlyConfig should actually read their
    ConfigFile
  - getOption in DefaultsConfig should actually fallback rather than
    throwing an NPE when a setting does not exist.
  - Fix default value for listenhost to be one that actually works
  - AllowedChannels check needs to make sure it isn't looking for a
    null ClientID.

Extras:
  - Add missing check for "-enableDebugOptions"
  - Ignore PONG replies prior to authentication, rather than suggesting
    the user auths.
Create configs and add defaults for server.servertype, user.admin, user.first