Something similar was suggested in #119, but I'm not so sure about that approach. The object returned by `Cheerio#make` will not be an instance of Cheerio, which has negative performance implications (we have to copy all Cheerio's methods over each time, instead of relying on the prototype chain) and is somewhat surprising besides. We've also defined `toString` for the Cheerio prototype, so we would have to also special-case that method.

At a higher level, I believe modification of the `context` argument is not only safe but intended. It seems to only be specified when `make` is invoked from the Cheerio constructor, and in those cases it is defined as the new Cheerio instance. Basically, it looks like a performance optimization--it allows us to avoid creating a brand new "empty" Cheerio instance when we already have one.

We can remove the reference to `context` and see that all the tests pass:

```diff
-  made = _.defaults(context || new Cheerio(), dom);
+  made = _.defaults(new Cheerio(), dom);
```