Test RequestSet#install
Test RequestSet#install block behavior
Add #clear method for TestCase#spec_fetcher block

This allows the installed gems to be cleared in a more friendly manner.
Move spec creation from TestCase#spec_fetcher

Now it lives in its own class, Gem::TestCase::SetupSpecFetcher.
Allow SpecFetcherSetup#clear to happen anywhere

Previously #clear was absolute, and always cleared at the end.  Now it
can occur arbitrarily.

This implementation is a little clumsy as util_setup_spec_fetcher adds
all the specs to the installed list, then we have to remove them and add
them back.
Remove creation of extra specifications

SetupSpecFetcher no longer uses TestCase#util_setup_fake_fetcher which
created a, b and c gems as they aren't necessary for any of the tests
using TestCase#spec_fetcher
Replace util_setup_fake_fetcher with spec_fetcher

The tests now (mostly) use spec_fetcher to create remote gems for
testing instead of util_setup_fake_fetcher.
Deprecate TestCase#new_spec

The new_spec method is only used in one place.  While it was introduced
as a replacement for util_spec and quick_spec, this never happened.  I
have no interest in making this change, so I am deprecating it in favor
of util_spec.
Replace TestCase#quick_spec with #util_spec

The util_spec does everything quick_spec does and more, so quick_spec
should be replaced with util_spec.
Move guts of #quick_spec into #util_spec

This will make it easier to remove quick_spec.
Remove TestCase#quick_spec implementation

Now it calls TestCase#util_spec.