Range requests not working with sub_SLOs

Change-Id: I618c06e7f9251bfc7049c9dc6df66e539b90d9a9
Add "If-None-Match: *" support to PUT

A common pattern that we see clients do is send a HEAD request before a
PUT to see if it exists.  This can slow things down quite a bit
especially since 404s on HEAD are currently a bit expensive.

This change will allow a client to include a "If-None-Match: *" header
with a PUT request.  In combination with "Expect: 100-Continue" this
allows the server to return that it already has a copy of the object
before any data is sent.

I attempted to also include etag support with the If-None-Match header,
but that turned up having too many hairy edge cases, so was left as a
future excercise.

DocImpact

Change-Id: I94e3754923dbe5faba065719c7a9afa9969652dd
Merge "Range requests not working with sub_SLOs"
Merge "Add "If-None-Match: *" support to PUT"