Return 304 based on etag for indexes

Cache and re-use the etag to determine whether to send 304's to the
client. Currently not sending etags to to parent registry, this will
require more work.

Performance improvement on using registry.npmjs.org directly is only
seen if setting the cacheAge to greater than 0 for now.