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.
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.