Adds caffe's implementation of the full convolution to CorrMM; cleaning up and documenting the code on the way
Refactored GpuCorrMM to be split into separate ops for the forward pass and the two backward passes
GpuCorrMM_gradWeights: fixed shape inference
GpuCorrMM: more elaborate error message in case of shape inconsistency
added tests for GpuCorrMM_gradInputs and GpuCorrMM_gradWeights
Added test_gemm_grads() test to test whether the gradients of GpuCorrMM are correct
conv_gemm optimizer chooses between GpuCorrMM and GpuCorrMM_gradWeights for valid convolution
GpuCorrMM: more documentation, more error messages
GpuCorrMM: Removed pad='auto', added pad='half' and pad='full', added shape management for gradients
GpuCorrMM: Added gradients of gradients
GpuCorrMM: documented output refcounting
Reordered and partly rewrote nnet.conv documentation page to make it more accessible
GpuConv now adopts nkern and bsize from ConvOp, conv_gemm and conv_fft_* optimizers use it if available
Cut down GpuCorrMM gradients test to about 5 minutes
Added warnings about CUBLAS bug to GpuCorrMM documentation
GpuCorrMM_gradWeights: Saved a CUDA call
Added C-contiguity checks to GpuCorrMM CUDA code
bugfix in configparser
Resolved issue #2055

Remove the `double round(double)` in pymath.h for Win32 only by defining
`HAVE_ROUND` via the `-D` switch of `nvcc`.
The `double round(double x)` function is present in CUDA
6.5.13/6.0.37/5.5.22/5.5.11/4.1.28/4.0.17, so I think it's safe to remove
the one in `pymath.h`.
Merge pull request #2062 from denadai2/master

bugfix in configparser