Implement and test System.List.filter and System.List.@.filter

TODO Once typed lists are available, the returned list needs to be typed (@.class.new() instead of [])
Implement System.List.filter