Use generic OpenCL/CUDA unrolled_dft.hpp
Refactor FFT::radix kernel
Refactor FFT::mul_code
Refactor FFT::twiddle_code
Refactor FFT::transpose
Refactor FFT::bluestein_twiddle
Refactor FFT::bluestein_pad_kernel
Refactor FFT::bluestein_mul_in
Refactor FFT::bluestein_mul_out
Refactor FFT::bluestein_mul
backend::kernel constructor takes compiler options
backend::kernel knows its preferred_work_group_size_multiple
Allow multidimensional launch configurations for kernels
Use backend::kernel in FFT
Move FFT out of OpenCL backend

And fix the remaining incompatibilities with CUDA
Merge pull request #114 from ddemidov/merge_fft

Generalize FFT implementation onto CUDA backend