move to list-based combine atom functor rather than sum tree
This significantly tidies the representation of a choice of atom
by folding the previous `Left, Right, and Foreign` constructors into
a single `anyValue`.
authored by