This class implements immutable maps using a list-based data
structure. Instances of ListMap represent
empty maps; they can be either created by calling the constructor
directly, or by applying the function ListMap.empty.