Improved Pkg error messages

This mainly addresses #4049. It may also hotfix #4311.

The simplest and most common situations should be addressed here, in particular:

* misspelling a package name (e.g. DateTime instead of Datetime) results in an "unknown package" error
* when some required package can't be installed because its requirements are not satisfied by the fixed packages, this is explicitly stated, and the information about what fixed packages are to blame is also printed
* when some required package has no possible version as a consequence of fixed packages' requirements, this is detected and some useful information is printed

See also comments in commit messages.

More complex situations are still left out and could possibly be addressed in 0.2.x.

It's left as a PR mainly for code style review (@StefanKarpinski), but testing is also encouraged of course, especially by people with more complex `.julia` setups.