Use PackageId in the DependencyQueue

This allows the dependency queue to properly handle packages with the same
name but from different sources.

A test was added which exercieses this functionality by depending on two
different revs of the same git repo.
This was a small fix to just ensure that two packages of the same name had different fingerprint files instead of stomping over one another.