Support various numeric types for SuperLU at once.
Previously, we only supported one numeric type (float, double, complex, or complex) that the user could select via a cryptic preprocessor define. This was done this way because when including SuperLU headers we would otherwise have multiply defined structs in SuperLU. At least in 4.3 GlobalLU_t is defined in slu_sdefs.h, slu_ddefs.h, slu_cdefs.h, and slu_zdefs.h
With this commit we do not include the problematic SuperLU headers anymore. Instead why define the functions called by us with extern C within DUNE. In addition we now provide all the numeric types for which SuperLU drivers are found at the same time.
Hopefully this will also fix problems with multiply defined BLAS routines experienced with arpack and SuperLU.