IE 9+ fixes

* Fix making PUT/DELETE requests by uppercasing the HTTP method name
* This also fixes PATCH for Chrome/Safari
* Fix requests with undefined body on IE
* IE 9 fix for connection error
* Fix CSS being applied to test suite

The only test that now fails is the FormData test on IE 9. Maybe we should skip that test if FormData is unavailable?
`patch` (lowercase) also doesn't work on Safari and Chrome. Since XHR is supposed to accept most methods as case-insensitive and that's not the case, it's a nice bonus point to have this discrepancy corrected. I would like to believe that when modern browsers actually implement `fetch()`, they will allow both lower-case and upper-case names.

In fact, [the `fetch` spec says](https://fetch.spec.whatwg.org/#methods) that methods should be case insensitive. Unfortunately, the spec only lists `DELETE`, `GET`, `HEAD`, `OPTIONS`, `POST`, and `PUT` as supported methods.