Support for extension methods, getResponseHeader(), and an extra error
Make sync requests not crash / remove associated leak
Empty methods are not allowed
auto merge of #2613 : Manishearth/servo/xhr-wpt-methods, r=Ms2ger

For [XMLHttpRequest/open-method-case-sensitive.htm](https://github.com/w3c/web-platform-tests/blob/master/XMLHttpRequest/open-method-case-sensitive.htm), [XMLHttpRequest/XMLHttpRequest/open-method-insecure.htm](https://github.com/w3c/web-platform-tests/blob/master/XMLHttpRequest/open-method-insecure.htm), [XMLHttpRequest/XMLHttpRequest/open-method-responsetype-set-sync.htm ](https://github.com/w3c/web-platform-tests/blob/master/XMLHttpRequest/open-method-responsetype-set-sync.htm) in particular. `getResponseHeader()` is used by a lot of other tests (the harness echoes most of the metadata in the response headers, which is tested on this side) 

The sync changes fixes half of the timeouts to give meaningful results.



Blocks #2525