Update how denodeify handles callbacks.

Instead of guessing to what the function arity is, I've updated the
argument count to be smarter and pick up the function parameter length.

This allows denodeify to determine if an extra callback has been added
by the end user.  With this information we can trigger their method once
the resolution has occured.