Added support for etags when downloading the package index.

Now the server will return a 304 status code instead of a 200 with a full
response if a client includes an up-to-date etag in the request.

HttpUtils in cabal-install already have support for etags, so this should
immediately make consecutive "cabal update" calls significantly faster once
deployed.

The current implementation is limited to the package index resource.