Don't replace the original body from Rack::ETag

The Rack spec states:

> If the Body responds to `close`, it will be called after iteration. If
> the body is replaced by a middleware after action, the original body
> must be closed first, if it responds to close.

Rack::ETag currently has a bug wherein it is replacing the original
response body, but not really changing it. Instead of changing the body
from within `digest_body`, simply build up the digest and return the
original body.

Signed-off-by: David Celis <me@davidcel.is>