Simplify Delay methods to set result

The Delay class template now has only one method setResult which
forwards all arguments to the Try constructor. This is more simple and
flexible than having many methods which each meet particular needs.
Improve Delay class template documentation
Redefine Delay data members as Variants

so that the contained types can be extended in the next commit.
Add Delay::forward function
Add missing include in SharedFuture.tcc
Use Delay::forward in Future::forward

See the comment in the code for why this change is needed.
Merge pull request #118 from magicant/feature/async

Future implementation enhancement