- Added documentation to README
- Implemented fmap() for generator<T>, recursive_generator<T>,
shared_task<T>.
- Centralised operator| overloads for fmap() in fmap.hpp.
- Now provide two-argument fmap() overloads as the type-specific
implementations: fmap(func, value)
This replaces the need for detail::apply_fmap() functions.
The promise_type::get_return_object() method was returning a reference
to the promise object, expecting that reference to be passed to the
constructor of recursive_generator<T>.
However, under Clang the result of get_return_object() is assigned to
an 'auto' variable, which ends up taking a copy of the promise object
on the stack and passing that copy into the recursive_generator<T>
constructor.
Modified get_return_object() to return the already-constructed
recursive_generator<T> object.