Only perform a single request in cache_update_path

This fixes a double request in the case that the locally cached specs
are out of date. What RubyGems did before this commit was perform a
request to determine that the cache was out of date, then perform
another request to download the latest specs.

Now we only perform one request which returns 304 Not Modified and no
data if the local cache is up to date, or 200 OK and the new specs data
otherwise.

This shaves off about a second of install time on my connection.