Handle circular refrences

This seems to handle circular references of objects and arrays.
Don't compare this object if we're already comparing it.