Currently the Executor that launches the ComputationRuns is simply stopped when the OpenCL infrastructure is shut down. On the other hand there can still tasks be submitted to the Executor when it is shutting down. This causes indeterministic errors sometimes.
1. Make the Executor flush the task queue so that all formerly issued ComputationRuns get executed
2. Make Executor wait for clFinish() on CL command queue so that all kernel and memory operations issues inside the ComputationRuns get executed
3. After shutdown() was called, ignore further ComputationRun submission