Attempt to handle circular references

It's possible for a sentry Client to receive an object, passed in the
extra param, containing circular references.

The MultiJson gem blows up with a signal 11 (segfault) after exhausting
the available stack space.

The standard library JSON raises a CircularDatastructure exception.

We switched to the standard library so we can handle the exception. When
we encounter a circular reference we send the exception to the Sentry
server, including the offending object as an extra param, then nillify
the extra param and try encoding the event again.