Add html rendering bench case
Simplify attribute rendering step

Removes the keyscan used to determine the size of the object.

Test: manipulation - html (file: jquery.html)
  cheerio x 9,709 ops/sec ±5.94% (76 runs sampled)
  old x 8,992 ops/sec ±8.62% (74 runs sampled)
  jsdom x 41.48 ops/sec ±9.33% (56 runs sampled)
  Fastest: cheerio

Test: manipulation - html render (file: jquery.html)
  cheerio x 103 ops/sec ±10.82% (62 runs sampled)
  old x 87.58 ops/sec ±11.02% (62 runs sampled)
  jsdom x 44.88 ops/sec ±13.67% (52 runs sampled)
  Fastest: cheerio
Cache tag check in render
Use string concat rather than [] join

Node's current v8 version is able to perform multiple string concat faster than the older array join.

Test: manipulation - html render (file: jquery.html)
  cheerio x 240 ops/sec ±2.33% (83 runs sampled)
  old x 144 ops/sec ±4.30% (79 runs sampled)
  jsdom x 56.46 ops/sec ±4.27% (62 runs sampled)

Conflicts:
	lib/render.js
Add independent html benchmark

Covers parser and rendering from initial html content.
Avoid delete operations

This helps us avoid a backing class change and any associated deoptimizations that may occur.
Merge pull request #388 from kpdecker/opt-render

Optimize Render