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.
Merge pull request #272 from jugglinmike/fix-css

Improve `css` method
Change `;` to `,` in depency import declaration

Came across this, when running node with --use_strict.
Document preferred approach for private methods
Update `css` to use idiomatic private methods
Merge pull request #286 from tp/patch-1

Fix variable declaration in depedency import
Merge pull request #287 from jugglinmike/private-doc

Document "private" function convention
spelling
Fix bug in `removeClass`

Specifying a falsey value (such as the empty string) should have no
effect on the matched elements' classlists.
Complete function signature of `addClass`
Complete function signature of `removeClass`
Simplify `removeClass`
Extend iteration methods to accept nodes
Implement function signature of `append`/`prepend`

...additionally, ensure that the methods do not throw errors when
invoked with `undefined`.
Implement function signature of `after`
Implement function signature of `before`
Implement function signature of `replaceWith`
Prevent `find` from returning duplicate elements
Rename and simplify helper function

Because this helper does not create Cheerio objects, `makeCheerioArray`
is somewhat misleading. By instead declaring it as a recursive function,
it can operate on arrays and other objects, which obviates the need to
wrap arguments in array literals before invoking.