Make isPromise always return a boolean

isPromise returned the object to test when it was falsy, instead of
returning false.
For example isPromise(null) would return null.
For the sake of consistency isPromise now always returns a boolean.

Also updates isPromiseAlike and adds tests for both.

Tested in node 0.10.4, Chrome 26.0.1410.64, IE10 and Firefox 20.0.1