[CHANGES]
- Ignore ->done or ->fail on cancelled Futures
- Added ->then_done, ->then_fail, ->else_done, ->else_fail
- Neaten up naming of fmap* family - provide both long and short
names for each function
- Added Future::Utils::call and call_with_escape
- Ensure that dependent futures on subclasses tries to use derived
futures as prototype if possible