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
add XMLHttpRequest support (and cookie passing support)
Clean up some `env` tests.
Fix some typos and casing for cookies.
Clean up XHR-with-cookie test in hopes of fixing Node 0.8 build.
Add a test confirming #658 is not a problem.
Fix script_with_cookie test to not use `setTimeout`.

This made xhr_with_cookie pass on Travis on Node 0.8, so presumably it'll do the trick for script_with_cookie too.
Add `window.navigator.noUI`. Closes #642.
Move location object to a separate file.

Convert it to object literal form (getting rid of `__define[G|S]etter`s) while we're at it.
Get rid of unused Contextify shim.
Version 0.8.0
Remove document-less window example. Fixes #657.
Add test for #618, which was fixed in htmlparser2.

Closes #618.
fix a fatal bug in v0.8.0
Use "license" instead of "licenses" in package.json.
Update minimum htmlparser2 version.

This fixes #618 and #652.