TraceSplitSemElem: first version; not even compiled yet

This is copied and modified from KeyedSemElemSet
TraceSplitSemElem: convert to use new Guard class as guards

Still probably doesn't compile though (but it is never compiled so it is okay)
TraceSplitSemElem: add new LiteralGuard class
TraceSplitSemElem: got it compiling and add LiteralGuard tests
* Forgot to make virtual functions in Guard "interface" pure
* Outputting value wrong in LiteralGuard
* Hashing value wrong in LiteralGuard
TraceSplitSemElem: move a test fixture to a header
Refactoring tests: make fixture for shortest path weights
Test refactoring: no longer declare separate "distance_ten" objects locally

Just use the fixture directly
Test refactoring: move shortest path weights to a namespace instead of class

This will allow accessing them unqualified if you include a 'using namespace'. The downside is that it ceases to really be a fixture; now they are just global variables.
TraceSplitSemElem: Fix for a bunch of compiler errors
TraceSplitSemElem: Tests; Add fixture to generate maps; quick validation test
DisjointSets: add new operator==, != and representative() functions
DisjointSets: Add operator << for ostream
DisjointSets: fix names of tests
Equalities guard: initial version (still a SemElem)
Equalities: add clone() function
Equalities: change from sem_elem_t to Guard
BiDomain: add initial version
Further genericize WFA::genericFwpdsPoststar

Now it takes the weights for the query automata (instead of assuming that it should be the 'one' weight of the WPDS rules/original WFA transitions), and also takes a WPDS instance so you can use more than FWPDS. Because of that latter fact, the more generic version is at 'genericWpdsPoststar'. :-) (The original remains present.)
Add a "print_typename" function to SemElem

(Untested as this is debugging code.)
On GCC, demangle SemElem typename when printing