Remove useless local variables
Have InstallerSet fetch always_install

This allows us to stop using code in DependencyInstaller that duplicates
code in the resolver.  It should also speed up RubyGems as
DependencyInstaller doesn't use BestSet for the first lookup.
Use minitest 4 failed results Regexp
Raise when add_always_install can't find specs

This gives a better error if the user gives a gem that can't be found.
Add RequestSet#always_install=

This allows InstallerSet to set these gems which is opposite of what
DependencyInstaller currenly does
Add InstallerSet#add_local and #local?

Now the InstallerSet knows about locally discovered and loaded gems and
tracks which dependency name was used to load them.  This will allow
DependencyInstaller to add proper dependencies for file names.
Fix pretty-print output for Source::Installed
Fix SpecificFile pretty print title
Relax dependency error string

I don't see where (b =1) came from as it isn't anywhere in the test.  I
find (b >=0) equally acceptable.
Find latest gem in add_always_install

The results of find_all are not ordered, so pick the highest version
because that's what we're installing on behalf of the user.
Reject all installed gems matching always_install

The sort order of sources prevent us from installing the latest version
when requested, installed gems will be preferred over .gem files.
Changing the preference order of sources is infeasible as it changes
other behavior.

Instead we reject all gems matching a name on the always_install list.
This means the resolver will only see .gem files and remote gems.
Fetch complete specs for IndexSet

Fetching only released specs means prerelease versions cannot be
installed.

IndexSet should be improved to only fetch prereleases when they are
needed, but it will eventually be removed so maybe this is not
worthwhile.
Test Gem::Dependency#match?
Check for prerelease in Dependency#match?

The prerelease flag wasn't being respected so RubyGems would install
prerelease gems when it was not appropriate.
Open dependencies no longer match prereleases

If a dependency is open ended (>= 0) it should not match a prerelease
dependency.
Remove gather_dependencies tests

This method is no longer called in DependencyInstaller
Add DependencyRequest#development?

This will allow the resolver to implement shallow development dependency
resolution.
Add ActivationRequest#development?

This tests if an activation request is for a development dependency.
This will be used to determine if a development dependency is shallow or
deep in the resolver.
Teach the resolver about shallow dev dependencies

This will allow --development to work correctly.
Add RequestSet#development_shallow

And send this option down to the Resolver.