Vanilla promise

Reverting to a direct API implementation for promises.
Implementing PromiseEC based on ErrorT and ContT

Based on discussions in issue #18 and pull request #20
Updates from discussion
Merge pull request #23 from purescript-contrib/topic/promise-refactoring

Topic/promise refactoring