Finding all possible electronic states in product structures

The current assumptions for newly found products is that they attain the
highest possible multiplicity as this in most cases the most stable
species and resulting often in the fastest kinetics. However if we start
with a singlet biradical reactant in the forward direction we find with
this assumption only the triplet biradical as product of the reverse
reaction. I became aware of this because I have added the nitrogen atom
as a triradical to the three important reaction families H_abstraction,
Disproportionation and R_Addition_MultipleBond.

I think making it very general is the simplest solution. For that I have
added the electronic states of quartet (Q) and quintet (V). I didn’t
want to continue hardcode specific exceptions. Therefore I have modified
the function __generateProductStructures() to find all possible
electronic states for the newly found product structures and add all
possible combinations of these products to a product structures list.
This list can also contain spin-forbidden reactions! But instead of
hardcoding the removal of them I think we should add their often very
slow kinetics to the library.

I have extended __generateReactions() to make a list of reactions using
the new list of product structures. That way it will find the reverse
reaction leading to the correct electronic state of the reactants of the
forward reaction.