Pkg.available: handle unregistered packages correctly.

Read.available now returns empty hash for unknown packages, which
in particular means that Read.installed_version now works correctly
for unregistered packages where it didn't before.
Pkg.checkout: merge whatever branch we're checking out by default.

This relates to https://github.com/JuliaLang/julia/issues/4123 and
may in fact be a sufficient solution. Previously the behavior was
very deeply confusing because one would end up in a situation where
METADATA and the repo we're in knows about much more recent versions
than the current local branch includes. This situation is fixed just
by doing a merge – only fast-forward to be safe. I'm not sure what
we should do if the fast-forward merge fails. We can deal with that
when we have a circumstance where it actually happens.