CumsumOp on GPU

CUDA implementation of the cumsum for 1D and 2D array. I didn't have time to look how to implement a generic ND version yet.

I put the code in a new file called ``extra_ops.py`` in the ``sandbox.cuda`` folder. I didn't know how/where to put the GPU version of the cumsum, so I took ``sandbox.cuda.neighbors.py`` as an example.

I also added some check and unit test for the CPU version of the cumsum.

Let me know if I should have use a architecture/function/variables that I wasn't aware of.
You can't do this. If x is strided, for example, it is the output of x[::2], z won't be correct. I'll continue to check the code and comment on it for a possible solution