Topic/promise refactoring

Working on an implementation for composing promises using `ErrorT` and `ContT`. Based on discussions in issue #18 and pull request #20.

@dylex any thoughts on this?