Split out Raven and Logger adapters for exception reporting

On te we need exceptions to go to logs. This changes things to
be based on configuration.
Allow customizing the instrumentation key for inheriting classes
Pick the metriks reporter type based on config
fix for deprecated expect { }.not_to raise_error(SpecificErrorClass)
don't crash on someone defining a Rails module
don't force loading Travis::Database
Refactor Logging

This should have been done long ago. Travis::Logging was concerned with
too many things at once.

This extracts a class Travis::Logger and moves the formatter to
Travis::Logger::Format.

Performance should be slightly better since it now precompiles the
format string and does fewer conditional checks. Hasn't been benchmarked.

This is a combination of 13 commits:

* log format configuration
* refactor logging
* do not use eval for log formatting
* make sure log methods can take an array
* port recent log changes (thread id)
* allow to use ruby logger instances (used in tests)
* fix log format to match expectations in core specs
* use our own error log method in log_exception
* remove stale require after rebasing
* remove stale requires
* port ff4dc45 "fix(logging): allow sending an exception to the logger"
* core_ext/logger seems gone in active_support
* pass through options on error handling, add an option to silence the backtrace
Retry publishing amqp messages as per michael's advice

Also, use march_hare (hot_bunnies was renamed).
backwards compat for Travis::Logging.configure