Implement N4088: Task Region R3

This pull request implements N4088: Task Regions R3. By tradition it extends the Standards proposal by adding features supporting more asynchrony. Concretely our implementation adds overloads for `hpx::parallel::task_region` (and `hpx::parallel::task_region_final` - which is equivalent in our case) which return a `future<void>`. This future represents the execution of all spawned threads inside the task_region.
No need to copy the `exception_ptr` twice. While Boost uses a ref-counted implementation, the standard doesn't require it (and some implementations do clone).