At the moment Archer segfaults due to a null-pointer access, if an application uses taskwait with depend clause as used in the two new tests.
This patch cleans up the task_schedule function, moves semantic blocks into functions and replaces the if blocks by a single switch statement.
The switch statement will warn, when new enum values are added in OMPT and makes clear what code is executed for the different cases.
With free-agent tasks coming up in OpenMP 6.0, we should expect more null-pointer task_data, so additional null-pointer checks were added.
We also cannot rely on having an implicit task on the stack, so the BarrierIndex is stored during task creation.