fix catch ad fallback: write headers and code if CheckRW.Write was not called
fix etag:
- use the Content-Type for hashing if it is available
- only write etag if we got data
move some ResponseWriter helpers to go-on/wrap and reflect that in the wraps