We generate ETags for requests now.

This should allow us to handle range requests with If-Range headers
correctly.