Add basic invoke_parallel construct.

There are serval ways we could optimize the calls, but for now this should be enough for first tests.
4 jobs from parallel_invoke in 1 minute 12 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Build
passed #2755
build_cmake

00:37

 
  Test
failed #2756
run_tests

00:35

 
  Sanitizer
skipped #2758
run_address_sanitizer
skipped #2757
run_thread_sanitizer
 
Test run_tests
/builds/gitlab/las3/development/scheduling/predictable_parallel_patterns/lib/pls/include/pls/internal/scheduling/fork_join_task.h:58:19: note:   no known conversion for argument 1 from 'force_steal_sub_task*' to 'pls::internal::scheduling::fork_join_task&&'
test/CMakeFiles/tests.dir/build.make:110: recipe for target 'test/CMakeFiles/tests.dir/scheduling_tests.cpp.o' failed
make[2]: *** [test/CMakeFiles/tests.dir/scheduling_tests.cpp.o] Error 1
CMakeFiles/Makefile2:323: recipe for target 'test/CMakeFiles/tests.dir/all' failed
make[1]: *** [test/CMakeFiles/tests.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
./ci_scripts/run_tests.sh: line 9: ./bin/tests: No such file or directory
ERROR: Job failed: exit code 1