Add granularity to DSN components

This allows users to configure the scheme, host, port and a path
pieces of the DSN string individually while maintaining backwards
compatibility with setting the server string wholesale.

We intend to use this when abstracting out the client transport to
support UDP in addition to HTTP/HTTPS.
Refactor HTTP transport out of Client

This commit refactors the method of message transport (presently HTTP
only) out of the client and into its own transport class. This is
groundwork for subsequently adding UDP support.
Add UDP transport for Sentry

This commit adds UDP message support to Sentry. This fixes Github
issue #52.
Add gzip encoding of event bodies

This commit adds a new configuration setting 'encoding', which can be
either 'gzip' or 'json' that specifies the type of message encoding
used for event bodies. It defaults to 'json' for backwards
compatability for previous users of Raven.
Touchup commit for adding UDP support

This commit has a variety of cleanups/touchups to the add-udp-support
stack of commits:
    * Renamed Raven::Transport to Raven::Transports
    * Fixed Ruby 1.9 hash usage in a couple places
    * Removed the use of .tap in favor of a 'begin/end' block
    * More widespread use of configuration.value rather than
      configuration[:value] per code review
    * Other minor cleanups
Merge branch 'udp-support' of git://github.com/twooster/raven-ruby into twooster-udp-support

Conflicts:
	lib/raven/client.rb
	lib/raven/configuration.rb