Move DependencyResolver to its own module and reorder Version<->Dependency.
Add a warning message for packages that use branch based dependencies.
Fix dependency resolution for outdated invalid dependencies.

Now the invalid dependency is simply ignored as long as it isn't actually chosen.
Improve the warning message for branch based dependencies.