Start rewriting dependency management (again ;))

- use decorator to register package managers
- change inner processing of DependencyInstaller.dependencies, so that we can install missing non-distro package managers
Bad method name...
A simple check whether pip is installed
Rewrite exceptions and dependency resolving/installing loop
Some exception fixes, remove no longer used method
Make the dependencies ordered, system dependencies first
Remove no longer used install_package_manager methods
Remove forgotten try-catch that no longer makes sense here
PackageManager.is_installed means if the package manager itself is installed
Move methods of the two helpers to package_managers + few fixes => almost done
Slight rework of how we check for package manager state
Some back and forth, but it seems to be going the right direction
Merge pip helper and manager
Some fixes in pip package manager
Make the yum group search log like rpm search
Handle errors in dependency installation
Skip dependencies of foreign system managers
Don't run the installation machinery if we have empty dependency list
Non-system managers like pip shouldn't install into system locations
Fix dependencies tests