util/diff: preventing diff recursion in non-simple objects

Simple objects are objects whose prototype is Object.prototype. This
applies to all objects constructed with {}, even if they have self
references.

We can't really diff complex objects, except for a strictly equal check.
0.1.2