Fix for keeping and using custom Cheerio options (Issue #273)

Cheerio.prototype.options are now overwritten if Cheerio is
instantiated with an options object.

cheerioinstace.options is now passed to parser when adding new dom
nodes to an existing Cheerio instance.
Updated to fit Cheerio's code conventions.
added tests from #274
added test case for preserving options

as proposed by @jugglinmike in #274
added `options` argument to constructor

as proposed by @jugglinmike in #274, but using `this.options` instead
of the prototype to enable `Cheerio.call` calls to work properly
preserve options in _make
fixed jshint errors in tests
pass options to `parse` and `evaluate`
added options argument to .load
remove lowerCaseTags from default options

caused failure of test cases (htmlparser2's behavior depends on the
existence of the property)

as a reminder for future optimizations, I've added the `decodeEntities`
option instead
replace remaining `new Cheerio` with `.call`

I'm not sure the behavior is the same (it's now equal to the code above)
move makeDomArray to prototype
Merge pull request #437 from MatthewMueller/preserve_options

Preserve options
Update callbacks to pass element per docs

https://github.com/MatthewMueller/cheerio/blob/master/Readme.md#each-functionindex-element-

This behavior matches the behavior of jquery and zepto but may be a breaking change for code that is intended for Cheerio only.
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)