Fix a race condition, which may occur when context objects, such as the request object, are reused in different threads.
Make a minor performance improvement. Move exception information from JSONProcessor#prepareDiagnosticContext() to JSONProcessor#process().
Merge remote-tracking branch 'vvasabi/plugin2' into refactoring
Fix javadoc for JSONProcessor.prepareDiagnosticContext
Fix issue #14: Move setup-code to AppenderSkeleton.activateOptions()
Fix integration test ClientTest.captureMessage_withTags
Introduce SentryDsn.buildOptional

Using SentryDsn.buildOptional instead of SentryDsn.build in the
SentryAppender should really fix issue #20 by returning null instead of
throwing an InvalidDsnException, effectively disabling the client.
Remove "duplicate" JUnit import from SentryDsnTest
Wait a bit in integration tests introducing new tags

[ci skip]
Make sure AsyncSentryAppender leaves everything non-async up to SentryAppender

AsyncSentryAppender should not try to build its own Sentry DSN - it
should let SentryAppender find out what it should do with the supplied
values.

[ci-skip]
Add message compression

The client will, by default, compress messages. Turn it off through
Client.setMessageCompressionEnabled or the corresponding log4j property
log4j.appender.sentry.messageCompressionEnabled=false.

[ci skip]
Remove an optimization that is not thread safe. Create test for ServletJSONProcessor. Trivial javadoc fix.
Allow RavenMDC content to be cleared after message has been appended or sent to the async processing queue. This prevents memory leak for ThreadLocal-based MDC when container pools threads.
Check request.getCookies for null return value
Fix integration tests for running under Sentry 5.1.5
Set version number to 2.0-SNAPSHOT