Improve naming make-pairs -> cartesian-product.

I knew this operation had a name, I just couldn't recall it before.

Also, add unit tests.
Remove uncessary union when combining partial-solutions.

The call to union isn't needed because the subtrees we are combining are
guaranteed to be disjoint.
Replace N-TUPLES call with CARTESIAN-PRODUCT.

(n-tuples 2 x) == (cartesian-product x) forall x.

Rename P55-UNIQUE-PAIRS to P55-COMBINE-SOLUTIONS since we've removed the
call to UNION.
Collapse nested LETs.
Rename LEFT-RIGHT-TREE-PAIRS to COMBINED-PARTIAL-SOLUTIONS.
Remove COMBINED-PARTIAL-SOLUTIONS and replace LOOP with MAPCAR.