Add infer_context and make the context parameter of as_gpuarray_variable mandatory.

You can use infer_context() on you input(s) to get the context you
should be executing in.  Then pass that to as_gpuarray_variable() to
get properly typed inputs.
Make a mixin class for those inherited tests that rely too much on a default context.
test_basic_ops passes (again).
More tests that pass (although we cheat a bit with test_elemwise).
op_lifter infers the context and passes it to the maker.
test_neighbours and part of conv.
Fix the subtensor tests (and associated broken things)
Add a clone method to TensorType and is equivalents
Stop exporting instances of ops that require a context
Clean up a bunch of small errors with regards to passing context properly
Get rid of scan typeConstructor
Make sure to transfer the context in elemwise optimizations
Fix the nnet ops.
Switch the test to use the 'test' context rather than the default.