Rewrite how `jsdom.env` handles config vs. strings.

This fixes #629 and fixes #554; see also #556, #562, #622, and #623.

However, it introduces a backward-incompatible change: `config.html` is no longer auto-detected, i.e. passing a URL or file name there will not work. Instead, `config.url`, `config.html`, and `config.file` are now explicit, whereas passing a string straight to `jsdom.env` triggers the autodetection logic. The autodetection logic has itself gotten smarter, now being based on first URL parsing (checking for both protocol and hostname on the resulting parsed URL), then on trying to read the file, and then if there's an ENOENT error reading the file, it finally puts the result in as HTML.
support hashchange event
Fix default location on Windows.

This was causing the window/index tests to fail after the location rewrite of 38b701aee182220fc199c0a5a0547be6e15ac617. Now it's more correct anyway.
Pass script errors to jsdom.env's callback.

Fixes #644.
Version 0.7.0
merge upstream/master