Implement #flat_map for Promise
Implement #zip for Promise
Fix Promise#zip for Promise<Array>
Pass the executor to the child in Promise#flat_map
Use #wait instead of sleeping in Promise specs

The spec seems fragile otherwise
Handle failures in the block passed to Promise#flat_map
Use an ImmediateExecutor for Promise#flat_map not to schedule unneeded tasks
Merge pull request #158 from obrok/promise-composition

Promise composition