Some experiment
Merge branch 'opencl' into opencl-second
leftovers...
Moved everything to OpenCL.cpp, preparing for device abstraction