Check object ETag in prefetcher
https://github.com/awslabs/aws-c-s3/pull/226 detects concurrent mutations to an object within a single CRT GetObject and fails the request if it happens. But our prefetcher makes more than one CRT GetObject request, and right now the CRT retrieves the ETag afresh in each request. So there's a race condition here where the ETag changes during a PrefetchGetRequest but in between two CRT GetObjects that the prefetcher has fired.
This race is probably super rare, especially since we overlap those CRT GetObjects within the prefetcher (spawning the new one when the previous one is half-finished). But we need to check for it anyway and fail the request if it happens.
We always know the ETag of every object in the filesystem, because lookup always does a HeadObject. So we should probably just plumb that through to the PrefetchGetRequest so it can remember the ETag it was initialized with.