Cache Gem::Specification.load

This pull request caches the result of `Gem::Specification#load`. For some reason, Rubygems will try to load the same gemspec multiple times, so this speeds things up a little bit there.

```
~/rubygems master ruby-2.0.0-p0 λ time ruby --disable-gem -Ilib -rubygems ~/.gem/ruby/2.0.0/bin/pry -e exit

real	0m0.495s
user	0m0.446s
sys	0m0.046s
~/rubygems master ruby-2.0.0-p0 λ gco cache-gem-specification-load
Switched to branch 'cache-gem-specification-load'
~/rubygems cache-gem-specification-load ruby-2.0.0-p0 λ time ruby --disable-gem -Ilib -rubygems ~/.gem/ruby/2.0.0/bin/pry -e exit

real	0m0.347s
user	0m0.306s
sys	0m0.039s
```