Refactored EquiSets and SortedEquiSets such that there's only an EquiBox,
not a HashBox and OrdBox, which were actually the same, and that allows
subclassing among these types that mirrors the standard library.
Narrow the result type of toSet for SortedEquiSet and TreeEquiSet.
The result type of HashEquiSet, is still Set so can use the
default implementation, which uses Set1, Set2, Set3, Set4 before
using a HashSet. That means HashEquiSet is not the perfect name.