Make tests available offline

To execute the tests the repo has to be cloned with:
git clone --recursive git://github.com/tmpvar/jsdom.git
or after the initial clone:
git submodule update --init --recursive

Fixes #817.
Make travis clone submodules recursively
Add test to ensure svg compatibility

Up until now when provided an SVG document, jsdom.html always wrapped
the content in a <html><body> construct. This should not happen in xml
documents however.
Fix XML documents in jsdom

If a XML document is detected, don't wrap it in HTML tags.

Fixes #779.
Add test for appending scripts to svg doc
Fix null pointer error with svg documents

This fixes the value documentElement returns when the document is an svg
document (or any other kind of xml document).

jsdom isn't really well equipped to handle non-html documents though.
While the script gets appended, it won't get loaded. To resolve that I
ventured deep into DOM land, however I don't have any clue how this is
supposed to work.
Add missing window.close to tests
Use parse5 instead of htmlparser2 as default
Use case insensitive xml matching
Use htmlparser2 for xml documents
Throw error if xml is given with parse5 as parser
Fix parse5 version
Remove unnecessary preprocessHTML

parse5 now takes over that job.
Use htmlparser2 if <isindex> tag is used
Use fragment parsing if setting Element.innerHTML

With the new capabilities of parse5 we have to differentiate if we're
parsing a document fragment (i.e. when setting Element.innerHTML) or a
complete document (i.e. the initial parsing stage).
Fix whitespace in expected html

The expected html is actually not the same as what's in the file.
Checked with Chrome to match exactly.
Fix frameset tests

framesets replace the body tag in a valid document.
Let the parser handle deserializing html entities
Fix encoding test to reflect browser behaviour

Tested with Chrome.
Make note about HTMLDocument.documentElement hack