Allow 2.0.0.rc.2 to push gems

This release seems good so I will allow users to test pushing gems with
it.
Untaint gemdep path for $SAFE=1
Fixed warning

Setting the ivar to nil works just as well
Removed trailing whitespace
Gem.ruby is frozen, so untaint it for $SAFE
Ignore permissions of credentials file on windows

When you write a file with 0600 on windows it writes the file as 0644.
This makes the checking the credentials useless on windows.
Improve Gem module documentation visibility
Merged from r39079 on ruby-trunk
Fixed Policy#inspect

Previously inspect used a \ at the end of the string to continue to the
next line.  Due to a future change to Ruby this has been replaced with
a + to avoid warnings.

Replacing \ with + resulted in incorrect output as + has lower
precedence than % which would cause replacement to occur only for the
second part of the string.

Now the string is enclosed in parentheses to force proper order of
operations.
Always calculate package file digests

The updates for RubyGems 2.x introduced a checksums file for package
integrity.  Tar-format gems built with RubyGems 1.8.x and older do not
have these checksums.

While adding checksums the signing support was disabled for gems without
checksums.  Because the checksums did not exist the digest for signature
verification were not computed.

This commit fixes the package side of signature verification.  Now
digests are computed regardless of the presence of checksums.

A second bug in the verification code needs to check that the number of
signatures and digests match.
Refactor dummy signature generation

Now dummy signatures are all generated in dummy_signatures which can be
splatted onto a call to Policy#verify or #verify_signatures.  This makes
the code a little easier to scan and indicates the signatures should be
ignored as they aren't a particularly important part of the test.

This work is part of ensuring that, when verifying signatures,
signatures are present even if invalid.
Force signatures and digests when verifying

Previously if the user passed an empty digests array verification would
succeed.

This could lead to lack of verification when Package has a bug (such as
54dc22f).

Now digests must be filled and the number of signatures must match the
number of digests (only the reverse was tested previously) to help catch
such bugs.

This check is performed even when data integrity is disabled to warn the
user of tampering.
require UserInteraction before including it

Commit 5db04b1c07fcd9ae9e38313e371dfa2e708ca3b4 started including
Gem::UserInteraction into Gem::ConfigFile, but didn't add a require.
The Bundler tests against rubygems master started failing as a result.
If this should be done a different way, just let me know.
Merged r39133 from trunk

This patch by usa prevents tests on windows from failing due to missing
chmod support.
Local gem names must end in '.gem' now

Previously RubyGems would look for 'rdoc.gem' locally when installing
'rdoc'.  This could cause user confusion and odd behavior, especially if
a local file matched a gem name.

Now you must give the full file name to install a local gem.

This fixes #407
Update prerelease version history for security fixes
Refuse old-format gems with a security policy

Old format gems do not contain any signing information.

Previously these gems were not checked for a signature upon
installation when a security policy was in effect.

Now these gems are rejected whenever the security policy requires data
verification.  All built-in policies except NoSecurity require data
verification.
Fixed loading old format gems on Syck

Syck and Psych have different exceptions for indicating a parse error.

Now the YAML parser is detected and the correct exception class
(ParseError or SyntaxError) is rescued when loading old format gem
metadata.
Merge pull request #444 from indirect/master

Require UserInteraction before including it
Clean up --install-dir handling

While reviewing pull request #442 an unused instance variable @gem_home
was discovered.

The unused instance variable was removed and a slight refactoring was
performed.
Properly test --install-dir behavior

The --install-dir option for gem install is supposed to create a
stand-alone installation of the listed gems.  It is supposed to ignore
gems already installed in the gem home or gem path.

The test for this feature did not test installing dependencies into the
chosen install directory.

These tests have been added.

Closes #442