Kew should treat function objects as promise-like

Kew's current implementation of ```isPromiseLike()``` is deficient in that it fails to detect first-class function objects as potentially promises or thenables. I direct you to sections 1.1 and 1.2 of the Promises/A+ spec (emphasis added):

> 1.1 “promise” is an object *or function* with a then method whose behavior conforms to this specification.
> 1.2 “thenable” is an object *or function* that defines a then method.

This pull request handles this case and adds a test for it.