Break out of circular references when walking through properties

Backbone collections set up a circular reference: collection[i] is a reference
to a model, and model.collection is a reference back to the collection.
checkChanges needs to not run in circles when encountering this.