Filter property: refactor to Filter::None and Filter::List(_)
Previously, a Filter was always a FilterValueList, which could potentially be empty. This commit updates a Filter to be either a Filter::None or a Filter::List which contains a FilterValueList.
Additionally, we remove the ability for a FilterValueList to parse a 'none' element, since this is now handled at the Filter level.
Finally, pulled the application of the filters into a run_filters
helper function since that logic was getting longer due to processing
multiple filters and matching the Filter enum type.
I think this addresses the rest of #621 (closed) that !372 (merged) didn't touch :)