KeyedSemElemSet: omit zero weight entries from the sets
KeyedSemElemSet: better printing

I was lazy before, by just printing "<stuff>" for the weight portion. Now I properly iterate over the set associated with the guard. Each set item is clamped in length to make it hopefully more usable.
SemElemPair: add "getFirst", "getSecond" functions

These duplicate the existing get_first and get_second, but better match the predominant naming convention in WALi.
WFA::semideterminize state-weight generation improvement

This function was decorating states with a weight of an incorrect type, now it's not.

Unfortunately, I didn't write an explicit test for it, but I discovered it because of a test failure in XFA containment at some point.
Add new XFA::intersect overload that takes a WeightMaker
XFA containment test change to use ASSERT rather than EXPECT

This means the test will fail as soon as there's an error, which is a little friendlier for debugging most of the time
XFA containment generalization: build KeyedSemElemSets

This is the first step to getting things to work with KS instead of BDDs. It's an intermediate result -- containment tracks sets of these sets -- but combining these sets is hard to do.
XFA containment: add unused code

This would be used for the more advanced version of the KeyedSemElemSet thing, where I split open these sets during containment. But that approach is theoretically incorrect at the moment.