* line shortening (lint)
* replaced cascading if else’s switch/case (2x)
* moved json & yaml file type setting into config.arrange_args with the
.ini setting.
* added binary type to type list in docs/Config.md
replace perl GeoIP db fetcher with node.js version
tis: add basic tests, don't register unless certs

* fixes a crasher bug (missing config_options in load_config)
* added test coverage for register() and set up
* don’t register hooks unless certs are present
tests/access: make test a little safer
Merge pull request #798 from msimerson/access-test

tests/access: make test a little safer
configfile: cache unique keys based on opts
Merge pull request #795 from msimerson/tls

tis: add basic tests, don't register unless certs
Merge pull request #794 from msimerson/config-type

config.js: small updates
Merge pull request #786 from msimerson/geoip

replace perl GeoIP db fetcher with node.js version
Merge pull request #799 from msimerson/cfreader-cache

configfile: cache unique keys based on opts
server: corrected defaults applying
fixes spurious test error in PR #796

server.js was throwing an error, but only when run *after* the
net_utils tests. I tracked it down to this line causing the problem:
```js
config.get('smtp.ini').main.public_ip
```

This ends up being an issue related to config caching. `net_utils`
reads a copy of smtp.ini to see if a public IP is defined there but it
does’t pass in the same options as the server.js file. Later, when
server.js reads that same file, with options, it gets the cached result
without them.
net_utils: remove no_cache option
Merge pull request #796 from msimerson/server

server: corrected defaults applying
cfreader/binary, flat, ini, json, yaml

configfile: removed formats to cfreader/*

* whitespace / link updates
* enable tests/cfreader
* moved ini tests to tests/cfreader/ini
* access: enable helo.check in test that tests it
* cfreader/binary: improved testing
* test length, and compare with fs loaded file.
* YAML overrides for JSON change
    * avoid duplication in cfreader/*
    * move file existence tests into configfile

* moved empty config into cfreader.type.empty()
    instead of configfile.empty_config()
revert tests/configfile/load_ini_config removal
cfreader: ini tests required bool_matches to be

initialized for the empty.ini condition