caffe conv kernel for theano. tests work, but needs integration and some...

The caffe convolution works and passes test, however, code needs some cleaning, which are marked with TODO in comments.  I created a new file, theano/sandbox/cuda/tests/test_conv_gemm.py that calls GpuConvMM. 
This is puzzling, did you write this kernel for caffe? 

Also the source you cite is not for the im2col stuff that's just below.