Promises are copyable

Streams, promises and packaged_tasks are copyable now. Futures are still noncopyable.
Also this commit makes generator<void>::next to not throw 'closed' exception for first calling.