use stacktrace field of Exception interface

Leave `sentry.interfaces.Stacktrace` for non-exception information, e.g.
a client may want to record both exception traceback and the call stack.
BaseUDPTransport was just picking the first address from getaddrinfo
instead of using the first IPv4 address by default as per the
documentation
Merge pull request #386 from crankycoder/features/ipv4_by_default

Fixes the BaseUDPTransport to use IPv4 by default
New context() API

This makes the API much easier to use, and resembles the raven-ruby implementation. Users can continually merge context (generally within their middleware), and simply need to call context.clear() to refresh it.

The following APIs are added as part of this changeset:

```
Client.context -- the accessible context instance
>>> Client.context.get()

Client.context.clear() -- flush the current context
>>> Client.context.clear()

Client.user_context() -- a shortcut to set the user interface
>>> Client.user_context({'email': 'foo@example.com'})

Client.tags_context() -- add additional tags to context (or overwrite an existing tag)
>>> Client.tags_context({'key': 'value'})

Client.extra_context() -- add additional data to context (or overwrite an existing key in the data)
>>> Client.extra_context({'key': 'value'})
```
Merge pull request #389 from getsentry/rewrite-context

Updates context() API
Acknowledge the loss of celery’s with_eager_tasks
Make celery mixin tests work with celery 3.1

It's ugly but should be backwards compatible to Celery 2.5
Overhaul Flask implementation
Merge pull request #392 from getsentry/overhaul-flask

Overhaul Flask implementation
Merge remote-tracking branch 'dctrwatson/cel-tests' into fix_celery_3_1_x
Fixed the task imports and worked around the eager task removal.
Fixed the task import for celery 3.1 (thanks to dctrwatson)
Revert "Fixed the task import for celery 3.1 (thanks to dctrwatson)"

This reverts commit 8c8e262e421fb643ceb6bd02fb9bc7b2579c70a8.
Remove raven.contrib.celery.CeleryClient
Correctly handle timeout option for HTTPTransport
Refactor transport namespace

- Deprecate non-DSN configurations
- Break each transport into its own module space
- Generically handle querystrings-as-options
Make the threaded transport the default
Merge branch 'kill-celery-contrib'

Conflicts:
	tests/contrib/celery/tests.py
Remove example of instantiating client without DSN
Add wad support