Chainable Clojure style promises for Swift