New err func

newErrFunc branch includes many changes, of which some are not backward compatible:

- ToFit class is used to specify what to fit in Fitme. This used to be done through flags in fitme, and it is now handled by adding items to a ToFit object.

- Environments can be either internal (i.e. the density matrix is determined in the presence of these density matrices) or external (i.e. only the interaction with the environments is calculated). This information is specified by the user when making a MSet, and then gets propagated to Fitme and ToFit through the MFactory class.

- Fitting to differences versus absolute values is not handled in ToFit, making it much more flexible. The determination of reference states, etc, is all handled in the ToFit class.

-  DIIS is now implemented in the parallelHF function.