Changes to denodeify

Changes:
- `denodeify()`'s second parameter isn't a binding for `this` anymore.
- If the callback of the node function has more than one success paramter it now returns just the first (instead of an array) Fixes #198 (The problem with the old behavior was that 3rd party module authors might change the number of success parameters of the callback at any time and consider it a non-breaking change. And it would be non-breaking if the user didn't use `denodify`)
- If the user sets the second parameter to `true` the promise  fulfills to **always** an array with the success parameters of the callback as values.
- If the user sets the second parameter to an array with names, the promise fulfills to a hash with the names as keys and the success parameters as values
- If the user supplies a second parameter that is neither an array or `true` it emulates the old behaviour and uses it as `this` binding. The user gets a deprecation warning that says that he/she should use .bind() instead.

Also updated the tests to test for this new behaviour.