Webidl and basic implementation of XHR object

This just gets a working interface with dummy methods in place that can  be built on. I'll implement stuff as we go along.

Blocks #2282