fix lapacke config
Reference issue
What does this implement/fix?
Include lapacke.h before ForwardDeclarations.h so that lapack_int can be defined consistently with the external lapack library. If MKL is used, we use their config file. Otherwise, we use the one included with Eigen (has include guard _LAPACKE_H_). Users may include an optional lapacke_config.h with HAVE_LAPACK_CONFIG_H to override the defaults.
Change lapacke.h to define (default) complex types as std::complex<float> , std::complex<double>. Add option to define lapack_int as int64_t with LAPACK_ILP64 switch (per https://netlib.org/lapack/lapacke_config.h). I specifically placed the macro guards in Core below #include <complex> so we don't need to worry about the complex headers being included.
Fix QR bindings to use std::complex instead of scomplex as those are specific to MKL and not Eigen in general.