GpuContiguous, tests, better opencl support

For the opencl, we skip some tests when it isn't supported and use the cpy reduce implementation when we can.
This is inside GpuEye. It have 3 inputs. So I think it is good.

So I think their is nothing preventing merging this PR.