Convolution layer using cudnn.

TODO:
 - [ ] tests
 - [ ] a way to use the gpu without cudnn
 - [ ] avoid GpuContiguous where possible