Add Gem::Util::popen for ruby 1.8.7

IO.popen on ruby 1.8.7 does not support array-style arguments which are
needed to avoid perilous escaping in Kernel#`.

This implements IO.popen using exec which supports array-style
arguments.
Add git gem source

This is part of implementing git gems in rubygems.  This class manages
a repository for a git gem.

This class is incomplete, it doesn't manage updating existing git gems
yet, and doesn't manage multiple revisions properly (I'm guessing).
Add Gem::DependencyResolver::GitSet

The GitSet will contain git gems for use by the resolver.  I'm unsure if
creating the source here is correct or not.  This will require further
work as I continue integrating git gems into the resolver.
Add initial support for git gems in gem.deps.rb

Currently this only supports gems with a revision of HEAD.  Such gems
probably can't be installed by the resolver.
Update MIT credits for near-identical bundler code

Parts of Gem::Source::Git mirror Bundler::Source::Git and
Bundler::Source::Git::GitProxy.
Normalize URI for ruby 1.8

Ruby 1.8.7 does not downcase the URI scheme like 1.9+, so do it by hand.