deepEqual

Adds `deepEqual(a, b)` support based on the structure of `clone()`. Added here because bugs in `clone()` will probably mean bugs in `deepEqual()`.