Add SharedFunction::create helper function
Add Promise::fail function
Check return type of argument function to Future::recover

The G template parameter is removed since it does not have to be part of
the signature.
Merge pull request #94 from magicant/refactor/async

Future implementation enhancement
Refactor Awaiter with PselectArgument
Hold HandlerConfiguration in Awaiter

The Awaiter implementation is going to depend on HandlerConfiguration to
support signal handling in upcoming commits.
Pass signal mask to pselect
Use registerTrigger function to construct PendingEvent

The FileDescriptorTrigger variant type is introduced as the PendingEvent
now holds file descriptor triggers only.
Call signal handlers after pselect
Reorganize PendingEvent as a class
Keep signal handler cancelers in PendingEvent
Share PendingEvent to enable weak reference
PendingEvent can be fired more than once
Register signal handler to HandlerConfiguration