Rewrite configuration and cli handling

- CLI has been completely rewritten to take advantage of new
  configuration interface. Switched to GLI from Slop for parsing
  options.
- Plugins are now configurable. Each plugin can define a set of
  configuration options that it will process upon initialization. These
  options are now exposed via the CLI.
- We now use 'actions', currently limited to 'list' and 'run'.
- Removed all globals from configuration and plugin handling. This means
  that a single process can now handle multiple distinct actions with
  completely isolated configurations.
- FeedRunner can now be instrumented via an 'observable' pattern. We use
  this for coverage analysis of feeds as they parse, as well as for unit
  testing. This functionality removes the need for the
  threatinator/instrumentation code (which was awkward to begin with).