[nnc backend] Implement Conv2D_FFT methods (#636)
* Added added utility functions.
Added pad_input(), unpack_and_pad_kernels(). Implementes most of operator().
* Added fft() implementation.
Added concrete implementation of FFT using in-place Cooley-Tukey algorithm.
* Added elementwise_product().
Added a function that performs convolution in Fourier domain. Also, fixed some interfaces.
* Added ifft() implementation.
implemented ifft(), which performs inverse FFT and concludes class implementation.
Added multiplying by channels in ifft() indexing.
* Restored ShapeRange loop.
unpack_and_pad_kernels now uses for (... : kernelRange) again to make code more understandable.
Signed-off-by: Denis Maksimenko <d.maksimenko@partner.samsung.com>