Update documentation of suggest_gems_from_name
Remove underscores and hyphens when finding suggestions
Merge remote-tracking branch 'rubygems/master' into remove_underscores_on_suggest_2

Conflicts:
	lib/rubygems/spec_fetcher.rb
Add test for suggest with dashes and underscores
Documenting Gem::Package class.
Split expected message in test for suggestion
Add task to remove trailing whitespace
Remove trailing whitespace
extract wait_for_child_process_to_exit for DRYer and more self-documenting tests of background rdoc generation
Merge pull request #353 from alexch/fork_docs

DRYer and more self-documenting tests of background rdoc generation
rework exception management for JRuby compatibility
Merge pull request #355 from alexch/fork_docs

rework exception management for JRuby compatibility
Merge pull request #354 from sferik/whitespace

Remove trailing whitespace (sferik)
Write gem entry checksums to a single entry

Previously checksums were written to an extra entry per entry in the gem.
(data.tar.gz -> data.tar.gz.sum which is a cost of 2N files per gem.)
Now checksums are written to a single checksums.yaml.gz as the last
entry in the gem.  (Cost of N + 1 files per gem.)

This reduces gem file size, especially if new files are added to the gem
format (a gem is a tar file, so the cost is at least 1024 bytes per file).

Additionally, the checksums are stored as a YAML document containing the
digest type and file name and digest contents which allows easier
parsing.  The previous format used a tab-separated list of digest
algorithms and digest values per line.
! Removed RSS generation from the gem indexer

Generation of the RSS file has been removed.  rubygems.org and geminabox
are the preferred alternatives.
Calculate checksums in a more deterministic way

The size of writes and location of flushes to a gzip stream can affect
the output checksum, so now the test and implementation do it the same
way.
Use maximum compression when packaging gems

This helps reduce bandwidth costs of packaged gems.  Since gems are
only packaged once this may impact gem authors slightly, but they're
unlikely to notice.
Use #bytesize instead of #size for tar writing

Tar file metadata is stored in a fixed amount of bytes, so we now use
the appropriate method to get the size in bytes.
Support multiple digest algorithms for checksums

This allows for an upgrade process if further weaknesses in SHA1 are
found.  Currently SHA1 (used by signing) and SHA512 (strongest commonly
available) are used.  All checksums found in a file are verified rather
than giving a list of "best" checksums to check in order.

The digests extracted from a gem are now a Hash with an digest algorithm
containing a list of files and the hexdigest for that file and algorithm.

Gem::Package::TarReader#seek was added so checksums.yaml.gz can be
extracted before any other files are read.  This allows Package to more
easily verify the checksums embedded.

Gem::Package::DigestIO was extended to update multiple digests at once.
Break up Gem::Package#verify

Extracted read_checksums and verify_files from verify.  Reordered the
verify_* methods alphabetically.