WIP: OpenCL backend, some refactoring of OpenMP backend.