New config options

- `config_hash` allows passing a config hash instead of an array of config files.
- `silent` allows you to prevent all output other than exception errors.

Miscelaneous fixes and formatting improvements.