Update Object.keys

- cache reusable methods
- check for otherwise non-enumerable keys

Resolves #99
Merge pull request #174 from Financial-Times/update-object-keys

Update Object.keys