object functions can handle hasOwnProperty override

I was under that impression too, but I think it might have been based on faulty reasoning.  A perf test like [object-keys-is-slow](http://jsperf.com/object-keys-is-slow) can mislead if you don't look at it carefully.  That test just showed a problem with this construct:

    for (key in Object.keys(obj)) { ... }

but shows nothing against `Object.keys` itself...

No problem with the other suggestion, knowing this, that we return the native function here when it exists, as it's a pure function with no trickery going on.