Add an `_.isPromise` function

This PR adds the `_.isPromise` function that returns a boolean which indicates if the argument is a `Promise` object, per the [Promises A+ spec](https://promisesaplus.com/).

`_.isPromise({}); // => false`
`_.isPromise({then: function () {}}); // => true`
`_.isPromise(function () {}); // => false`

Since different libraries implement promises differently, this is the truest way to check whether a value is a promise object.