Fixes for IE 8 and IE 9

- Object.keys isn't available in IE 8, so using a local objectKeys helper method
that accomplishes the same effect for spec
- The DONE property isn't supported in IE 8, so falling back to the
numerical 4 in spec when necessary
- Extending from an XMLHttpRequest can't extend properties that are
filled in asynchronously (status, responseText, etc.) on IE 8 and IE 9
so we now skip these properties when extending