Update librairies (jackson, logback, log4j2)
Make dependencies explicit when needed
Add a simple unit test for log4j2
Do not always rely on the source as it may be null
Capture formated message and add a MessageInterface
Do not use equals during the test of exceptions

The exception provided by the logging framework can be a proxy
(it is with log4j2) which means that the equals method doesn't work.

It shouldn't have been done in the first place as ImmutableThrowable shouldn't
have overriden the equals and hashCode method.
Remove incorrect equals and hashCode implementations
Do not verify the captured exception against itself
Set an implementation of equals/hashCode for ImmutableThrowable
Ensure that circular exception are handled
Fix indentation, imports, code order
Remove legacy support (supported only in raven-3.x)