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.
Should be `errors.size()`, `exception_list::get_error_count()` should not even exist.