Add diagonalization procedures for complex matrices

Add singular value decomposition of a complex (rectangular) matrix,
diagonalization of a complex symmetric and a complex hermitian matrix,
as well as their real counterparts.
(cherry picked from commit 7c9572a2b79bc662343a9f5d2483788da429871f)
Add svd procedures that return singular values in ascending order
(cherry picked from commit 2af7792883b6ab16f6cf7da0e1422f496f4f6ffc)
Work around Eigen bug in Array and Matrix wrappers

Applies to Eigen version prior to 3.1.4.
test/module.mk: test linalg2 independent of ALGORITHMS
added some instructions for nmssm model files in sarah.
Needs work and flexibleSUSY parts to be added.
added instructions to create Z3NMSSM directory from SARAH directory.
Mild change to eralier part to avoid name clashes with existing directories.
src/linalg2.hpp: add procedures following SARAH conventions

The mixing matrix conventions for (symmetric) svd are from
Haber and Kane, Phys. Rept. 117 (1985) 75-263.
I could not find where the sfermion mixing convention is originally from.
src/linalg2.hpp: add a real -> complex svd procedure

From: Alexander Voigt <Alexander.Voigt@physik.tu-dresden.de>
Subject: Re: BPMZ convention in diagonalize_symmetric
To: Jae-hyeon Park <jae-hyeon.park@tu-dresden.de>
Date: Mon, 11 Nov 2013 10:10:53 +0100

One remark: In my current development branch I have the following
extra routine which I need to handle real mass matrices in combination
with complex mixing matrices:

// m == u.transpose() * s.matrix().asDiagonal() * v
// (convention of Haber and Kane, Phys. Rept. 117 (1985) 75-263)
// (s >= 0).all()
// s in ascending order
template<int M, int N>
void sarah_svd
(const Eigen::Matrix<double, M, N>& m,
 Eigen::Array<double, MIN_(M, N), 1>& s,
 Eigen::Matrix<std::complex<double>, M, M>& u,
 Eigen::Matrix<std::complex<double>, N, N>& v)
{
    const Eigen::Matrix<std::complex<double>, M, N>
        m_complex(m.template cast<std::complex<double> >());
    sarah_svd(m_complex, s, u, v);
}

Could you please consider adding a routine (or similar) with this signature?

Many thanks,
Alex
Merge branch 'master' of ssh://pktlogin.phy.tu-dresden.de/soft/users/theory/FlexibleSUSY
put numeric helper functions into numerics.hpp to make them reusable
read EXTPAR entry 0 (fixed high-scale parameter input scale)
put the test routines into the flexiblesusy namespace
rename variable
add fixed-scale option to the high-scale constraint

If the high-scale is set to a non-zero value via set_scale(), this
scale will be used as high-scale.  This means that gauge-coupling
unification is not enforced.
pass value of EXTPAR entry 0 (input scale) to the spectrum generator

Now the user can set the parameter input scale (= gut scale) in the
SLHA file via

  Block EXTPAR
      0   0
add default setting of parameter input scale to the SLHA files