IE 11 is giving me a hard time...

I'm trying to send some binary data as a `Uint8Array` in a POST request, but `[Object object]` gets sent instead. In IE's dev tools, inspecting the request body reveals that the `Uint8Array` is being transformed incorrectly as `[Object object]`:

![screen shot 2016-03-15 at 9 31 20 am](https://cloud.githubusercontent.com/assets/440299/13793569/b991e3ea-eab4-11e5-9901-f9adee6f1beb.png)

I tried commenting out some code to see if the request will send the correct data, and it does. I commented out these lines:

```
if (utils.isArrayBuffer(requestData)) {
  requestData = new DataView(requestData);
}
```

https://github.com/mzabriskie/axios/blob/master/lib/adapters/xhr.js#L162

... and the resulting request sent binary data as expected:

<img width="463" alt="screen shot 2016-03-15 at 7 14 07 pm" src="https://cloud.githubusercontent.com/assets/440299/13800038/27c28680-eae2-11e5-9718-512fcc078cd7.png">

What is the purpose of the `new DataView()` call? What is happening that turns the binary data into the `[Object object]` string? Why does this break only in IE 11 (works in Chrome, Firefox, Edge)?

lib/adapters/xhr.js
responseData,
        responseHeaders,
        config.transformResponse
      ),
      
      status: request.status === 1223 ? 204 : request.status,
      statusText: request.status === 1223 ? 'No Content' : request.statusText,
      headers: responseHeaders,
      config: config,
      request: request
    };
    settle(resolve, reject, response);
    
    request = null;
  };
  
  request.onerror = function handleError() {
    
    
    reject(new Error('Network Error'));
    
    request = null;
  };
  
  request.ontimeout = function handleTimeout() {
    var err = new Error('timeout of ' + config.timeout + 'ms exceeded');
    err.timeout = config.timeout;
    err.code = 'ECONNABORTED';
    reject(err);