Single factor terms now accounted for

For the final result, single factor terms are added at the end, either
directly to the top addition node or by creating an addition node if
need be.
Name changing: nodes -> node

This makes more sense logically.
Fan detection flattens sources

Since the sources are all node hashes, flattening them array-wise won’t
change structure representation and removes one more possible bug from
creeping in.