Avoid having one filter instance multiple times in child filters collection

Usage of ArrayList in an aggregating filter allows having the same instance of
a child filter multiple times without any effect. Problem with that is that it
can create very rich filter tree that slows down getting child filters. Changing
this led to reduction of the time needed to traverse a graph from tens of
minutes (and still waiting for a result) to less than a second.