Remove code duplication, add support for searchUrl
Remove filterPackages and add RepositoryInterface::search, refactor all commands to use new methods and remove all usage of the full package list for Composer repositories that support providers, fixes #1646
Check that a repo has no providers when getPackages is called to catch any mis-use