Refactoring Raven::Event.capture_exception

It would be great to be able to Subclass Raven::Event to add custom
behavior for things like stack trace sanitization. Before we can do
that, it would be helpful to have smaller functions that to override. I
have split up Raven::Event.capture_exception to allow higher granularity
in overriding behaviour.

I also have added some limited specs to help ensure that the new
behavior matches the old. The only significant change in behaviour is
that before the refactor, passing an exception that did not have a
backtrace would raise an exception, which was making testing difficult
and prevented some types of logging (for instance, passing in an
exception that was constructed, rather than thrown). I added a guard
around the backtrace parsing to prevent this failure mode.
Only send module version strings

If ActiveSupport has been loaded, it overrides the way that a
Gem::Specification is JSONified, causing it to send a very verbose
hash. Casting the Gem::Specification object to a string first will
send a simple version string (like '1.2.3') in either case.

Fixes #15
manually initialize interface defaults to avoid hashie bug https://github.com/intridea/hashie/issues/53
Merge pull request #21 from msaffitz/master

Avoid Hashie Dash Bug with Parameter Defaults leading to erroneous headers, env in Sentry events
Don't send "404 Page Not Found" messages

ActiveRecord::RecordNotFound and ActionController::RoutingError will result in 404 pages, which are legitimate exceptions in Rails
Exclude 404 from Rails DebugExceptionsCatcher
Log exception
Compare by name
Remove logging
Qualified class name
Revert
Configurable
excluded_exceptions config item
default none for config.excluded_exceptions
Stop capturing excluded exceptions from any source
Revert
fix
Update lib/raven/event.rb
Update lib/raven/event.rb
Update README.md