Implemented a handler for htmlparser2

The big advantage of this change is that we'll only create a DOM tree once, with a lower memory footprint and a general performance improvement.

There is one breaking change: Previously, all children of a node that raised an error were skipped - now, the parser is `.pause()`d to avoid further events (ie. the rest of the document is skipped).

The Sizzle tests fail for some reason I haven't figured out yet. I'd appreciate any help tracking the issues down.