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?
I'm sorry, IE made me do it :trollface: 

FWIW, all JS frameworks which wanted to support IE 9 made this workaround at some point. We don't have to do it, but it would be nice to work around IE 9 issues while we still support it in our production apps.

It's a separate commit, which I can rebase out at your wish.