Convert #resolve_for into an iterative algorithm (for profit)
Comments and warning fixes
Added multiple argument handling to gem list
Refactored to Gem Query
Finishing Query touches
fix Gem::Specification to always return files in a predictably sorted order
suppress list source header if only one type requested with --quiet
Use metadata['allowed_push_host'] to restrict gem pushing to that host only . Defaults to nil, meaning any host is allowed. Includes tests.

Note that I had to change 2 tests in test_gem_commands_push_command.rb, namely test_execute and test_execute_host; they exploited the fact that gem push previously did not always attempt to load a gem's specification (it only loaded the gemspec if no host was specified). I used existing test helpers to fix those 2 tests.

I figure @rykov of @gemfury will appreciate this. Thanks to @drbrain for implementation suggestions.
Add full_require_paths.

Add convenient method, which returns expanded version of
require_paths. This removes code duplication and may helps #210 a bit.
Merge pull request #603 from seamusabshere/allowed_hosts

Use metadata['allowed_push_host'] to restrict gem push to that host
Merge pull request #604 from zachrab/572_gem_list_multiple_args

gem list now lists results for multiple arguments
Update history for #603
Update history for #604
Merge pull request #612 from jaggederest/sort_spec_files

Gem::Specification#files returns files in sorted order
Update history for #612
Merge pull request #615 from mpapis/bugfix/quiet_list

suppress list source header if only one type requested with --quiet
Update history for #615
Remove trailing whitespace following #604
Clarify the headers are omitted with --quiet for #615
Tests for #615