Fix for IE8

Fixed some issues in IE8.

* Use `Object_keys` shim instead of native `Object.keys`
* Fix `Object_keys` shim to throw an TypeError for non-boject value
* Fix `isArguments` because `typeof arguments` is not `'[object Arguments]'` in IE8
* Fix RegExp test case
* `(/abc/gim).toString()` returns `'/abc/igm'` in IE8
* `(/abc/igm).toString()` returns `'/abc/gim'` in Chrome

So test just `/abc/g`. The flags are not important in this test case.