Convolution layer using cudnn.
Multiple compilation fixes, wrong working branch was submitted.
Don't make the gpu backend depend on cudnn.
Add some tests for the new op.
Reflect the addition of sub in the cop documentation.
Make sure to initialize the cudnn descriptors.
Simplify error handling in struct init code and stop ignoring errors.
Fix bad fail code for variable declarations in the struct.
Add the cudnn error message to the error strings.
Check that the inputs are contiguous.
Add documenation on how to use GpuDnnConv.
Fix error handling.
Merge pull request #2112 from nouiz/abergeron-dnn

Abergeron dnn