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