Refactor DOMWindow

This should only be a very basic starting point to demonstrate where I'm going with this.

In this first step we should get ```DOMWindow``` out of the clutter and give it its own file. The modifications done in the ```browserAugmentation``` method should be up next. We could just move the function patches to the window too.

I'd also rename ```DOMWindow``` to just ```Window``` to align with the browser ```Window``` constructor.

Note that this already breaks backwards compat since the level option won't have any effect on the level chosen anymore (always living); therefore ```v2.0.0``` branch.

In further steps we could then slowly migrate stuff which is currently buried in the levels files into the ```Window``` file; in the best case also factor them out into their own npm modules.