Utilities for the Elaborator backend.

Most of these classes are reimplementations of the corresponding classes in the java.util package except that Objects of these classes that have equal elements are not themselves equal.
This differs from the corresponding classes in java.util, where the corresponding classes in java.util that have equal elements are themselves equal. @since Metropolis-1.0