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
Make SVG document actually valid