Merge branch 'sp_sandbox'
Merge https://github.com/Theano/Theano
Use gradient_undefined instead of None in MRG uniform
Catch exception and forward NullType to input gradients, instead of failing
Try to fix how Null gradients are propagated in Scan

- propagate NullType when summing different gradient contributions
- identify which outer outputs of the scan node implementing the grad
  should be Null
- replace them, and the corresponding inner variables, with zeros
  of the appropriate size, so the scan node can be compiled and run.
- introduce a difference in undefined gradient because going through
  a shared variable with updates, and because a NullType was returned
  by the internal graph.
Actually compile and run the grad scan node.
Update comment, indentation.
Fix words tacked on the end of a sentence.
Fix use of wrong macro.
Add first version of MRG for gpuarray (with tests).
Change GPUA_mrg over to use GpuKernelBase.  (I couldn't get it to work otherwise).
Remove useless import of NVCC_compiler
Mark first batch of really slow tests.
Mark some more tests as slow and do some cleanup while there.
Added the cumsum function similar to numpy's one.
Removed forgotten debug comments.
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.