Once more, with feeling ...

- Added copy-c'tor to the async object
- Added documentation
- some code-cleanup
- copy-c'tors will now use member swap (aka. copy-and-swap-idiom) on the
T value if this function exists in T
- ignore autogen-documentation for the moment, seems it gets confused on
the initializer list