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
Convert python literals to theano constants before handing them off to Subtensor.
Fix get_scalar_constant_value().
Fix syntax error.
Fix typo.
Refactor. Use decorators for skipping cuda-only-tests.
Unpickle cudaNdarray as numpy.ndarray, if cuda is not enabled.

However, emit a warning.
Create test file for type test and move test case.
Fix Variable.eval() (issue #1724 on github)

It is now possible to call Variable.eval() with different sets of input
parameters.