object functions can handle hasOwnProperty override

turns out that `R.keys(5);` is `[ ]`, which is not the `Object.keys` contract. OTOH, I *like* that it gives you back an empty array, that is at least *correct*. "You want the keys of `5`? Here you go: `[ ]`"