New futures

* Futures don't make unnecessary allocations in heap. Ready future (made with make_ready_future) doesn't have shared state and stores data in future object.
* New basic_stream interface. Stream implements this interface.
* Also all data of generator can be redirected in other basic_stream object without overhead. So it's possible to process data from generator effectively.
* All promises (promise, packaged_task, stream) are copyable now. It allows to make std::function from packaged_task!
* Code of futures is splitted in several files. I hope it helps to read source and understand how to use this stuff.