A macro filter knows how to take a Collection of objects and return a list of
them that pass its filters. This object is generally created to be used for
by multiple OMEventHandlers to further filter events based on other
parameters that the OMEventHandler may not know about.