Allow indexing a large number of gems without stack overflow

When indexing a large number of Gem::Specification.add_specs uses the
splat operator to get a list of specs, which puts all the specs on
Ruby's stack and has a max size, somewhere around 20K specs for Ruby
1.9.3.  To allow for indexing a large number of gems (such as when
creating a RubyGems mirror), this is changed to also take an array,
which is then immediately flattened.  The calls from Gem::Indexer are
also modified to use the array form of the arguments, as opposed to
the splated form.