Implement jQuery compatible `.pipe()`

jQuery let's the filters passed into `.pipe()` optionally return a promise-like object. The state of the promise object (resolved / rejected) is replicated into the master deferred returned by `.pipe()`.

The previous implementation did not properly replicate the state into the master deferred. For example, a `.done()` filter could return a deferred that had been rejected, but the master deferred would still end up being resolved. The test case in 6ee9772 does a better job illustrating this concept.

b19540a fixes the typo from my last pull request and adds a test case for the optimization: https://github.com/rraval/simply-deferred/commit/d1f6a41fc051ccf6d57127c1582f2d5b4355ab2c#deferred-coffee-P20