Implemented the FFT 3d convolution with almost the code shared with the FFT 2d convolution.
added tests for the conv3d_fft

Conflicts:
	doc/library/tensor/nnet/conv.txt
[3DConvFFT] add fft optimization  for GpuConv3D
[Conv3DFFT] Add optimization for GpuConvGrad3Dn and GpuConvTransp3D
[3DfftConv] Add stride value checking
Small fix according to the pull request comments
Move intermediate 3dfft function inside the opt
Fix opt
Clarify documentation
Add 3dfftconv automatic padding when the input last dimension is odd
Fix blank spaces
Update opt to replace Conv3D, ConvGrad3D and ConvTransp3D instead of GpuConv3D, GpuConvGrad3D and GpuConvTransp3D.
Add kernel flip to follow the behavior of Conv3D/ConvGrad3D
Update tests
Add test for optimizations
Update tests name
Fix theano compilation mode
Merge pull request #2000 from ballasn/3dfftconv

3dfftconv