Added stage/algorithm/type.hpp which contains algorithms operating on the different type nodes. CalcPossibleTypes and CalcRequiredTypes use the simplify() algorithm to reduce the complexity of TypeSets.