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.