Revert 1b6edcd and update comments

From [ruby-core:58490], this feature is too dangerous and has been
reverted.
Add Resolver::Specification#installable_platform?

It seems that this method is required for proper implementation of
platform resolution, but wasn't implemented at the top-level of the
Resolver::Specification tree.

Now the few classes that override it can use it for supering.
Use Specification#installable_platform?

This removes duplicate code
Add Resolver::LocalSpecification

AvailableSet would return an InstalledSpecification for local gems which
were not installed.  This causes problems for installing git gems as
refactorings are required which know the difference between an installed
gem (which needs no further work) and a local gem (which must be
installed).
Refactor creation of the set to setup
Add #install to Gem::Resolver::Specification

Now each type of resolver specification knows how to install itself.
This will allow "installation" of git and vendor gems.
Add sanity check for installation of other gem

This allows discovery of breakage of the setup
Switch to Gem::Resolver::Specification#install

This moves the responsibility of installation out to classes that know
how installation works.