Add a NMSSM SLHA2 input file
Parse MODSEL entry 3 to check if the user wants to use the NMSSM.

MODSEL entry 3, value 0 corresponds to the MSSM (default).
MODSEL entry 3, value 1 corresponds to the NMSSM.
use an enum for the model type to be more flexible for future models
setup a NmssmSoftsusy object
read extra NMSSM parameters from EXTPAR
initialize all NMSSM input parameters to zero
Call lowOrg of the NMSSM

To do this I replace the NMSSM_input struct by a DoubleVector,
because the latter is the input formatn that lowOrg expects.
check for NMSSM boundary conditions

We do this in the same way as in the RPV case: determine the NMSSM
boundary condition from the set MSSM boundary condition.
add some NMSSM comments and do a little reformatting
Add a NMSSM input parameters class to help validating the user input.

This class will store *all* NMSSM input parameters (taken from the
SLHA file) and adds some helper functions to determine if the input
yields a Z3 symmetric model or not.
The NMSSM is Z3 symmetric even if xi_S != 0.

This is because the Z3 symmetry is a symmetry of the Superpotential,
and xi_S is a soft parameter.
Warn if more that 12 NMSSM parameters were set
set more NMSSM parameters to some debugging value
Put the NMSSM input parameters class into the header file and add
an operator<< for convenience.
Support 6 parameter input according to SLHA2
Bugfix: need to return the modified stream
Check if we support the set of EWSB output parameters
add some comments and improve user error message
make function const
typo