Add MDC/NDC info as extras to the event
Generate checksum for messages without stacktrace
Set a better culprit in Log4j
Change the ThreadPool to a fixed size pool

Instead of a CachedThreadPool, use a fixed size thread pool, based
on the number of processors available.
Add a shutdown hook to terminate AsyncConnection
Reorganise code
Add equals/hashCode to Dsn
Get the DSN from JNDI/Env/JavaProperties
Return UUID if the event isn't built yet