Simplify+improve where implementation

Small change in contract, functions will only be checked if the test `obj` has own property for that key

`where({toString: R.alwaysTrue}, {a: 1}) // => false`