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>