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
REORDER THIS COMMIT  Equalities guard: initial version (still a SemElem)
TraceSplitSemElem: fix three mistakes in (Literal)Guard only discovered later

* Forgot to make virtual functions in Guard "interface" pure
* Outputting value wrong in LiteralGuard
* Hashing value wrong in LiteralGuard
TraceSplitSemElem: Add tests for 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
Tests for TraceSplitSemElem: Add fixtrue to generate maps; quick validation test
REORDER AND SQUASH WITH TWO BACK Fix for a TraceSplitSemElem compile error
REORDER AND SQUASH: this file needed to be committed a couple ago, with the last test refactoring commit
Tests for TraceSplitSemElem: add a couple tests
REWRITE fix minor typo in Equalities namespace
DisjointSets: add new operator==, != and representative() functions
Equalities: add silly compiler fixes
DisjointSets: Add operator << for ostream