Partially revert the Etag change in
be62deeb42eeb7a2a467b9751e34108d8e498047. That change removed
subpackages and importer count from the Etag hash. This meant that even
if subpackages changed, the old cached version would be loaded.
Packages with many subpackages (like `google.golang.org/api`) can take
time before they're fully fetched in the background. Once the package
was fetched with a partial list of subpackages, none of the rest of the
subpackages would appear on subsequent page reloads due to the Etag
cache, even though more subpackages had been saved into the database.
Restore some of the prior Etag behaviour, including the subpackages and
importer count in the hash. This invalidates the cache when subpackages
are added so they can be seen on a page refresh.
I'm unclear on what the `importerCount` limit at 8 is for, but figured
I'd reuse the code from just before