move `forOwnRecursive` to util, write some tests
changed signature of `forOwnRecursive`'s callback: (value, path): path is now an array with the top level object followed by keys that make up the path to value

add deferred test "formatArgs with the implicit 'arguments'";
fix `forOwnRecursive`: visit each node exactly once, even in confluent or cyclic structures
+ test for `forOwnRecursive`: "with isomorphic but non-identical sub-objects" (ie uses object *identity* rather than *appearance*)
+ tests for `forOwnRecursive`: "does not visit properties from up the prototype chain" and "visits each own prop once in function" (failing)
+ tests for `forOwnRecursive`, particularly re unchangeable non-enumerable props like (function(){}).name
refactor tests: extract logging spy creation into setup
rename: `forOwnRecursive` -> `forOwnRec`, `isFunctionOrObject` -> `isObjectOrFunc`
changed `isObjectOrFunc` into `isPlainObjectOrFunc` (that's really what we want); improved its msg to also state the actual type
proper checking for non-emptiness of (sub-)objects in result of makeTests
+ test names of the thing returned by `makeTests` (incomplete)
+ custom assertion `isProperSubsetOf`; wrote test about test-names created by `makeTests`in terms of that
silence jslint (a bit): how to disable "Don't use [String|Number] constructor", "Use the object literal notation {}" and "Use the array literal notation []" ?!
depend on lodash 1.0.0 which came out yesterday, so we can use `_.partialRight`