node's assert.deepEqual algorithm except for NaN being equal to NaN
github.com/thlorenz/deep-is
thlorenz/deep-is