test_gpu branch for better GPU test coverage, better naming.

I'd like this to be considered as it gives more generic naming for the GPU scheduling, a better pattern for handling both CUDA and OpenCL, and a couple other fixes, such as allowing Exprs in GPU tiling.