Add an optional "filter: PackageFilter|None" parameter to .select(), and if it's not None, call a new version of ._select() with it.
._select() is not abstract anylonger. Its default implementation filters the results of ._select_by_name(), can be reimplemented by deriving classes for better performance, but doesn't have to.
Signed-off-by: Jan Lindemann <jan@janware.com>