Make the core code for the convolution reusable.
Add gradient for GpuConvDnn
Extract the handle code to a reusable class.
Update conv tests to use generators.
Add support for subsampling with GpuDnnConv and tests it and the gradient.
Fix not passing subsample to the gradients.
Copy .h files also.
Add CDataType to return a C pointer.
This handles Capsules, Cobjects and python 3 compat.
Outsource the creation of the cudnn convolution descriptor.
Fake "correct" strides to satisfy the cudnn functions.
Fix the tests for the gradient case.
Also make sure it copies .h in MANIFEST.in
Add documentation and checks to CDataType.
Add a test for CDataType and fix a bug that was calling freefunc too often.
Fix last few comments about the tests.
Add comment explaining empty c_cleanup.
Don't mark c_cleanup as optional, it is not.
Merge pull request #2117 from abergeron/dnn

Add support for subsampling and gradient to GpuDnnConv