Pick best latest prerelease to install

After refactorings to Gem::DependencyInstaller the ability to install
prerelease gems was broken due to insufficient tests before the
refactor.

This led to all versions of a gem being checked for installation which
would inevitably lead to a dependency conflict.

After an additional refactor and tests to expose the behavior (see
previous commits) this has been fixed by choosing the "best" gem from
the list (the latest prerelease with `gem install --pre gem_name`).

Fixes #468