Refactor duplicate dependency parsing

The same code was copy-pasted into two places, so its time to clean it
up!
Add basic GIT lockfile output support

Part of #727
Add pretty_print for Gem::Source::Git
Aggregate multiple git repositories in a lockfile

This also outputs dependencies for the GIT section of a lockfile.
Alphabetize git lockfile output
Match requirement behavior of bundler in lockfile

Bundler orders the versions and deduplicates (which may be a bug
elsewhere in the RubyGems lockfile support).
Delegate Source::Lock#uri to the wrapped source

This fixes the URI-less remote in lockfiles.