DistributionRequirement should cache the available package managers
Determining which package managers are available on the host should be done once.
i.e. get_available_package_manager
should be split into the constant host based checks for available, and the instance based lookup.
And the host based checks for each package manager should only be run if an instance might want to use a package manager.
So for coala-bears, since they all only define apt-get dependencies, that is the only check which should be run.
We could also have a performance improvement of mapping package managers to host OS, as this is not something which changes quickly -porting a package manager to windows is never easy.