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.
I used ones because it was more robust to floating error and I want to test huge arrays since the GPU code differs when arrays are bigger than the number of threads available. Actually, it is only require for the test that I named "recursive cumsum" which consist of `block_max_size*(block_max_size+1)+2` elements. So, I will replace `np.ones` by `np.random.rand` when possible.