Remove satisfied dependecies from next source lookup

When iterating sources and checking for met dependencies, remove the
actual specs that were satisified by the source from the lookup of
following sources.

This prevents lookup of local gems (from `gemspec` or `path` or `git`
sources) in rubygems source.

fixes #2909
This should `dup` `dependency_names`, or else each source will be aliasing the instance of the list that gets changed.