Simplify `make` method

Organize all logic for creating Cheerio objects within the Cheerio
constructor itself. Ensure that the `Function` prototype exists in the
constructor's prototype chain so that it defines a `call` method.
Re-define `Cheerio#make` as a simple proxy for the Cheerio constructor
for those methods that need to create new Cheerio instances (thus
avoiding compile-time cyclic dependencies).