Generalize ProjOuterProdTTN to general products of TTNs. Currently it only supports an outer product build from a product of two TTNs. Also maybe it should be named ProjOuterTTNProd, or be design as a general type ProjOuter which wraps a TTNProd, which represents half of the outer product.
Related to #132, #133, #134.