Replaced Pushable with IFn to act like promise

In Clojure core, (deliver p x) is the same as (p x). Doing the same
thing here means we can provide a shortcut and remove a protocol.