Add ReplaceCircularReferences Processor

If an Event's data contains circular references MultiJson will fail to
serialize it, and may even segfault for some (C extension) backends.

This processor traverses the event data and replaces circular references
with the string "<...>", just like raven-python's Serializer. Note that
the processor must appear before other processors that recursively
traverse data (like the existing SanitizeData) to prevent
SystemStackErrors.

Change-Id: I0e9ba969e3f52fcf384a9422f5913f1a0f5f58db
Reviewed-on: https://gerrit.causes.com/21858
Tested-by: Lann Martin <lann@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>