Remove custom serialization

Some tests are still failing, don't merge yet.

This [test](https://github.com/tmpvar/jsdom/blob/master/test/browser/index.js#L126) isn't correct, I think.
Tried the following in chrome console:
```javascript
var p = document.createElement('p')
p.setAttribute('specials', '"&lt;&gt;&amp;&nbsp;')
p.outerHTML // "<p specials="&quot;&amp;lt;&amp;gt;&amp;amp;&amp;nbsp;"></p>"
```

I need some [spec](http://www.w3.org/TR/html5/syntax.html#the-doctype) expertise with the [doctype tests](https://github.com/tmpvar/jsdom/blob/0c92f20d2a458c016fa82cd8742d15262770d563/test/browser/index.js#L210):
JS: ```document.implementation.createDocumentType('foo', '', 'foo "bar".dtd')```
Chrome-Console: ```<!DOCTYPE foo SYSTEM "foo "bar".dtd">```
parse5: ```<!DOCTYPE foo "foo "bar".dtd">```

Two questions about that:
* ~~I think I read once that the parser is supposed to pick only the last quotes before the closing \> however this doesn't work in Chrome with a raw HTML doc, is that correct or~~ [Doesn't seem correct](http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#doctype-state), should that actually be wrapped in single quotes instead?
* ~~parse5 leaves out the SYSTEM, is that possible according to spec, or a bug in parse5?~~ [Seems](http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#after-doctype-name-state) to be a bug. It seems to be [easily fixable](https://github.com/inikulin/parse5/blob/c130afa952f79c63bd3f7ff821fe6d1d163d4a5a/lib/tree_construction_stage/tree_serializer.js#L160).


parse5 [inserts a ```\n```](https://github.com/inikulin/parse5/blob/master/lib/tree_construction_stage/tree_serializer.js#L92) while serializing in this [test](https://github.com/tmpvar/jsdom/blob/master/test/jsdom/parsing.js#L256).  This results in a "different" string than ```.innerHTML``` in Chrome.
We can probably kill makeHtmlGenerator and a bunch of other code, right?