Gem::SourceList is now Enumerable

It defined #each and acts like it is Enumerable, but did not include the
module.
Add Gem::SourceList#empty?

So we can add a #clear and test it with reasonable language.
Add Gem::SourceList#clear

This will make it cleaner to implement sources for the gem dependency
files.
Refactor SourceList#replace to use #clear

So we implement ourselves in terms of ourselves.
Document Gem::SourceList methods
Refactor SourceList::from to use #replace

This removes duplicate code.
Capture sources from a gem dependencies file

Now we know which sources the user requested, but do not use them for
anything.