refactoring: use lists instead of arrays for filter collections

Using arrays makes the surrounding code very constrained. Most of the
time, filter collections were built in lists and converted into arrays.
Using lists in the filter factory signature makes it more natural to
manipulate those collections.