IE8 Compatibility

Implement Object.keys from kangax (https://github.com/kangax)
Use it instead of getOwnPropertyNames
Test for defineProperty eligibility