FFTW3 multithreading
This enables multithreading in FFTW3 using OpenMP and enables preprocessing during compilation. Only a portion of FFTW3 calls are sped up by this because the majority of them are already within parallel blocks that use the available threads.