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.
Humm, you are right. I think I will have to consider the strides of the output within the kernel and don't overwrite it as I did it. Do you know how I could test this explicitly (because I tested stepped strides but the tests passed https://github.com/MarcCote/Theano/blob/cumsum_gpu/theano/sandbox/cuda/tests/test_extra_ops.py#L49 )?