if all packages named N provide the virtual package, list only the name N instead of all packages providing it.
Instead of the dependency oriented logic, switch to print them for each package or name needed. Might give a bit more readable errors now. There's still few corner cases that proper error is not output, which are cought by the test cases.
Implementing basic dependency handling, install_if and awareness of pinning.
ref #574