Declare sdot_ static.
Mark CLazyLinker_call as static.
Make the data arrays in cutils_ext static.
Enclose the op structs within an anonymous namespace to hide their symbols.
Make _executor() and _destructor() static.
Remove the sdot declaration in the test so that it may work.
Rename GpuCAReduce to GpuCAReduceCPY
First step of conversion to the new back-end GpuCAReduce.

Added tests and updated the opt to use it. It should not compile for now.
Override perform() (otherwise DebugMode and py linker would use it)
Convert some of the old GpuCAReduce code to the new interface.
Test with dtype specified by the tests.
Port sync
Port gpu reduce opt to make reshape the input if needed.
gpucareduce port continue.
Move Shape Op.
register c code for Shape op with GpuArrayVariable and doc the register fct().
better error message.
Disable some GpuCAReduce test cases that aren't implemented.
Test with clinker too as now the Shape Op have c code
skip test error due to notimplemented cases.