CompositeException does not mutate nested exceptions by attaching stacks, but instead
aggregates them at print-time.

Since nothing is being mutated, there's no chance of accidentally creating a cycle in the Exception chain.
Removed unused import
Fixed up SafeObserverTest w.r.t. CompositeException changes
Merge pull request #1388 from mattrjacobs/eliminate-circular-exception-creation

CompositeException stops mutating nested Exceptions