Configuration improvements (see comments)

Not ready for commit yet - I'm currently writing the documentation.  Looking for comments on this though please.

Here are the changes:
- Add support for .yaml files into configfile.js which are easier to write for humans than .json files (and support all potential JS types).
- If a .json file is requested and it doesn't exist, replace .json with .yaml and re-check and load if exists instead
- Allow both JSON and YAML format files to override the results of other configuration files when ! is prefixed to the variable name: e.g.
`````yaml
"!smtp.ini":
  main:
    listen: "[::0]:25, [::0]:587"
    daemonize: true
"!smtpgreeting":
  - Haraka
  - Spam is not welcome here... you have been warned
`````
- Make Haraka look for a smtp.json (and therefore smtp.yaml) file early in the start-up so a single configuration file can be used if desired.