Clean up logging system

Remove manually-initialized loggers
Make logging much more customizable by exposing Winston setup
Make widgets emit events
Update hook tests since f4f52fb02 requires their target to be EventEmitters
Ensure loggers are always updated by config changes

Make tests silent
Correct `set<element>` syntax on elements

Regression introduced in f4f52fb0269b90067
Ensure defaults are always loaded
Simplify CLI entry point by stopping pretending support for multiple suites

It had big presentation issues anyway, was not tested, and has an easy workaround
Ensure logger references do not stale and always reflect the config

Closes #37
Allow `name` option in configuration file

Suite name is not logged anymore, it is an event emitted by the Runner
Add `toString` method to Runner
Correct plugins after major index file refactor
Fix exit code on failure
Fix logging trace left on feature failure
Make `--version` option more easily parsable

Make `--help` message give the reference URL
Switch success exit code test to DuckDuckGo instead of Advanced Matchers

Faster
Add "too many arguments" exit code test
Extract stdout spy library from views tests
Extract state assertions from Feature to StateStep
Spread CLI view across Runner/Feature/Step parts
Remove Feature events from Runner
Make steps fire `start` events

Uniform step resolve & reject parameters
Refactored matchers tests