use master if no tags and version == *. better errors for invalid repos

This PR does two things:

- use master if no tags and version == *

Annoying, but unfortunately, I think it's necessary. Literally can't install any higher-level packages when one dependency is missing a version. Example: `ripplejs/ripple` cannot be installed by duo because `yields/uniq` doesn't have a version. I'm sure there are plenty of other examples out there too.

- better errors for invalid repos

`Not Found` => `sweet/repo@amazing/version: Not found`