Organize tests for `cheerio.load`
Alter "loaded" functions to produce true instances

A common use case for this library is to generate a factory function
based on document markup via the static method `Cheerio.load`:

    var $ = cheerio.load(aStringOfMarkup);

...the resulting function can be used in much the same way as the
Cheerio (and jQuery) function itself. A notable exception is the
inheritance structure of the instance:

    $('div') instanceof $; // <-- false

This forces users to rely on a non-standard approach for determining the
type of a selection:

    'cheerio' in $('div'); // <-- true

Modify `Cheerio.load` to return a true constructor function--one whose
instances are instances both of the constructor itself and the `Cheerio`
function.

In addition, this change slightly improves efficiency in some use
cases. When a "loaded" function is invoked with the `new` operator, the
generated instance is used directly (instead of being discarded in favor
of a new instance of the Cheerio function).
Update tests to avoid duck typing

This informal and non-standard way of type checking is no longer
necessary.
Merge pull request #542 from jugglinmike/instance-of

Alter "loaded" functions to produce true instances