Begin implementing Gemfile.lock support

Currently up to basic Gemfile.lock output.
Refactor stub gems into spec_fetcher helper
Add requirements to lock file DEPENDENCIES
Handle requirements in lockfile output

Non-default requirements must be included in the GEM section.
Add directory to the Gem::Source::Vendor

Now a vendor gem knows where it came from.  This will allow the lockfile
to also record where the gem came from for persistence across
resolution.
Support path: gems in lockfile

I'm unsure what the "!" is supposed to mean in the dependencies section,
but my choice seems correct.
Dependencies and specs are ordered in a lockfile
Dependencies of specs are ordered in a lockfile