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. 

TODO:
- [x] Add support for the full mode
- [ ] Remove The need of gpu_contiguous
- [ ] Add support for strides (probably only square strides)
Could you relax this check so that it accepts valid values.