Automatically update the git cache on checkout

The user shouldn't need to know these internal details.
Remove unused Source::Git#update
Fix Source::Git::new example
Complete SpecFetcher documentation
Complete SourceList documentation
Complete SourceFetchProblem documentation
Complete Gem::Source::Vendor documentation
Complete Source::SpecificFile documentation
Completed Source::Local documentation
Fix SpecificFile after doc change

The parentheses were removed, but this breaks as a bare * in the
arguments list requires parentheses for disambiguation.

So use a named variable.
Complete Source::Installed documentation
Git sources come before all but installed

This matches the behavior of bundler (I think).
Vendor sources come before installed sources

Seems natural, but I did not check bundler.
Add license example; create "Recommended" category
Add text to license attribute documentation

Link to GitHub license picker
Explain importance of specifying a license
Include license recommendation in warning
Use correct CERT_FILE constant
Test installation of files in mkmf

To support gems that require extensions using full paths (Ruby
Bug #9106) RubyGems will need to install extensions into two places.
The extension install directory and the lib directory.

This commit sets up the tests for this change.
Also install extensions files into lib/

This is one workaround for Ruby Bug #9106 where msgpack uses full
require paths to require extensions.  Now the files exist in both
places.
Load shared extensions first

This means shared extensions will be loaded before the ones in the lib
directory so compatibility can be maintained.