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.
I think the `xrange(3)` is wrong here.  We only have two inputs.

Also, why do you want to use the full module path?  I prefer to import things and use them by their short names.