A multiset which forwards all its method calls to another multiset.
Subclasses should override one or more methods to modify the behavior of the
backing multiset as desired per the decorator pattern.

Warning: The methods of ForwardingMultiset forward
indiscriminately to the methods of the delegate. For example,
overriding add(java.lang.Object,int) alone will not change the
behavior of ForwardingCollection.add(java.lang.Object), which can lead to unexpected behavior. In
this case, you should override add(Object) as well, either providing
your own implementation, or delegating to the provided standardAdd
method.

The standard methods and any collection views they return are not
guaranteed to be thread-safe, even when all of the methods that they depend
on are thread-safe.