Support uninstalling all gems with `gem uninstall --all`.
Test that `gem uninstall --all` uninstalls all gems.
Speed up dependency matching

When searching for a specific name, we can just do a binary search to find the gems by their name, instead of iterating thru all the gems (which takes a long time, since there are over 320,000 gem versions).
To do this, we need to sort the tuples by name, which is just a little overhead.

Motivation:
Gem update took 32 seconds on my machine, when there was nothing to update, only to check if there is a newer version.
With the optimized version, it dropped down to 2 seconds.
Implement --no-installed for gem list

This option was present but never implemented.

Fixes #593
Merge pull request #595 from sullerandras/speed_up_dependency_matching

Speed up dependency matching through #bsearch
Minor refactor after #595

Removed freeze

Updated history for #595
Refactor duplicate line out of tuples_for
Ignore .rdoc directory created by rdoc-tags
Pass 'a' options argument.
Use Gem.dir and always spare build_info/ dir.
Merge pull request #584 from havenwood/uninstall-all

Support uninstalling all gems with `gem uninstall --all`.
Update history for #584
Use install_dir for uninstall all gems
Extract methods from UninstallCommand#execute
Whitespace
Disallow gem names with --all when uninstalling

The tests are broken for this commit, but the next commit will fix them,
sorry future self!
Always remove executables when uninstalling

I think the executables would just LoadError, so why keep them?
Added Gem.find_latest_files

This returns files from the latest gems, not all installed versions as
in Gem.find_files.
! Only load plugins from the latest versions
Extract find_files_from_load_path