Add abstract class to simplify creation of MultiSet implementations, needed for MultiValuedMap; additional cleanup.