Fix XML documents in jsdom

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

Fixes #779.
Use parse5 instead of htmlparser2 as default
Use case insensitive xml matching
Throw error if xml is given with parse5 as parser
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.