Add continuation class
Make delay derived from runnable
Change fire_if_ready to to_continuation in delay
Return continuation from delay modifying functions
Add dedicated type for delay callback

This commit is a refactoring adding a type for delay callback. The
std::function<callback> type is replaced by std::unique_ptr<callback>
which is typically smaller. The new type can also reduce memory usage
because non-movable callbacks no longer have to be wrapped in
shared_function.
Less memory usage in promise