Tentative fix for #3174

This wraps the generation of git gem binstubs in the same exclusive lock
that is used by installing threads. Since generating binstubs _also_
generates the entire gem, it seems like there were install threads
stepping on each other while writing the gem itself and while writing
the gem to add the binstubs.

Ultimately, I think we should stop writing out all the files for each
gem twice, which seems to be what is happening here. It’s more important
to fix the exceptions first, though. :)
apply chdir monitor to all chdirs

Now that MRI and Rubinius also use the threaded installation plan, we
need to make sure that all installation threads will stay synchronized
and not cross-access files.
Fixed an issue with building git gems in parallel

We need to ensure that the dir remains the same
through out the installation of these gems,
this includes Path Installer as well as rubygems
build.
||= is not thread safe
raise AuthenticationRequiredError on Net::HTTPForbidden
Merge pull request #3262 from arronmabrey/use_api_auth-1-7-stable

raise AuthenticationRequiredError on Net::HTTPForbidden
Run all tests against RG master again

Conflicts:
	spec/spec_helper.rb
guarantee Bundler.settings will only parse once
replace newlines and/or spaces with one space
add a test for duplicating quotes
ensure quotes will not duplicate during YAML.dump

closes #3261
adjust spec to values that actually cause quoting
:space_invader:
limit quote-doubling spec to 2.1

YAML only adds quotes to values starting in Ruby 2.1, so testing this
on earlier versions of Ruby seems silly.
So that didn't actually work. Ugh. Try again.
Version 1.7.7 with changelog
Strip credentials from ambiguous source warnings.

Fixes #3249.