FFT 3d convolution

Implemented the FFT 3d convolution with almost the code shared with the FFT 2d convolution.
Actually it appears that any convolution other than conv2d is badly maintained and only 'kinda sorta works in some case, like, you know, the tests pass I think'.  So even though off-by-ones are hard to spot in convolution code, you probably have the "best" comparison interface code right now.

So I withdraw my objection to this test code.