Please note that `_cast()` casts not just tensors, but nested tuples of tensors as well. I thought that using nested tuples as data was a Pylearn2 thing, rather than a Theano thing. Is that correct? If so, I could either keep `_cast` where it is, or just factor out the `tuple`-specific part of it, keeping that logic `pylearn2` while moving the rest of the function to `theano/init.py`.