Ditch ExceptionsCatcher + beef up Honeybadger::Rack.

This changes how exceptions are reported in development environments. First, some history on how Rails handles exceptions:

Rails has two middleware for exception handling: `ActionDispatch::DebugExceptions` and `ActionDispatch::ShowExceptions`. The first is responsible for displaying the debug page when the Rails `config.consider_all_requests_local` is enabled. When it's not enabled, exceptions are re-raised up the stack to `ActionDispatch::ShowExceptions`, which displays the appropriate error page. While the original exception is not re-raised beyond this point, it is added to the Rack env as `env["action_dispatch.exception"]` so that upstream apps know an exception occurred.

The Rails way is that while requests are considered local, exceptions are handled by outputting the debug information directly to the end-user and otherwise "swallowed" by the middleware (as indicated by the fact that `ActionDispatch::DebugExceptions` does not re-raise the exception, and does not add it to the Rack env).

In the past we monkey patched the Rails middleware in order to send notifications for all exceptions, even with `config.consider_all_requests_local` enabled. This seems somewhat redundant and adds a complex monkey patch which is basically identical to Honeybadger::Rack. From now on, we will respect `config.consider_all_requests_local` by sending error notifications only when Rails deems it appropriate by either a) re-raising the exception, or b) providing an exception in `env["action_dispatch.exception"]`.