Restore support for MKL
This re-enables support for directly calling MKL DFFT routines. A CMake check is added for MKL and if it is found, then MKL is used for both BLAS/LAPACK and FFTs. The MKL threading layer (GNU or Intel) is set at runtime based on the compiler used during build.