This adds a wait_list class which contains a vector of OpenCL events that can be waited on before executing further commands.