Fix passing context as dom node

Currently you can do this in JQuery:

    var $div = $('<div><p></p></div')
    $('p', $div[0])

But it throws in Cheerio. Fixed it.
Merge pull request #390 from kpdecker/cheerio-only-bench

Add cheerio-only bench option
Merge pull request #377 from alFReD-NSH/dom-context

Fix passing context as dom node
proper rendering of CDATA
don't loop through cdata children array
only ever one child index for cdata
CDATA test
Update render.js
Merge pull request #397 from stevenvachon/master

proper rendering of CDATA
Remove nodes from their previous structures

When manipulation methods operate on existing nodes, ensure that these
nodes are removed from their previous structures.
Optimize add and remove class cases

Test: attributes - Add Remove class (file: jquery.html)
  cheerio x 1,953 ops/sec ±1.70% (94 runs sampled)
  old x 718 ops/sec ±2.92% (88 runs sampled)
  jsdom x 55.61 ops/sec ±1.16% (74 runs sampled)
Cache rendered HTML on element objects

Test: manipulation - html render (file: jquery.html)
  cheerio x 814,945 ops/sec ±3.04% (84 runs sampled)
  old x 208 ops/sec ±3.97% (79 runs sampled)
  jsdom x 51.31 ops/sec ±4.01% (56 runs sampled)

Test: manipulation - html independent (file: jquery.html)
  cheerio x 8,974 ops/sec ±5.33% (79 runs sampled)
  old x 8,787 ops/sec ±4.41% (85 runs sampled)
  jsdom x 252 ops/sec ±6.28% (70 runs sampled)