Add Identity class
Remove unnecessary template parameters

To reduce number of template instantiations.
Allow Future::then to pass Promise in

The new overload of Future::then enables more fine-grained promise
treatment.
Allow Future::map to pass Promise in

The new overload of Future::map enables more fine-grained promise
treatment.
Allow Future::recover to pass Promise in

The new overload of Future::recover enables more fine-grained promise
treatment.
Allow Future::unwrap to pass Promise in

The new overload of Future::unwrap enables more fine-grained promise
treatment.
Reimplement Future::map using Future::then

This refactoring reduces code size and removes hidden code duplication.
Reimplement Future::recover using Future::then

This refactoring reduces code size and removes hidden code duplication.
Reimplement Future::forward using Future::map

The Forwarder class template is no longer used and thus removed.
Typo in Future::recover documentation
Add Future::wrap function
Merge pull request #98 from magicant/feature/future

Yet more future implementation enhancement
Add AwaiterImpl::removeFiredEvents

This is a refactoring to make functions that iterate on pending events
more simple and single-responsible. The following three functions are
so rewritten that they no longer remove fired events:

- fireTimeouts
- computeArgumentRemovingDoneEvents ->
  computeArgumentFiringErroredEvents
- applyResultRemovingDoneEvents -> applyResult