Small efficiency improvement for SLO range GET

If a client sends a GET request with a Range header for a SLO
manifest, SLO would notice this and perform a second GET request, sans
Range header, to retrieve the manifest body. Most of the time, this is
the sane thing to do: a subset of a SLO manifest is pretty much
useless. However, if the client has requested the first N bytes of the
large object, and the SLO manifest has N or fewer bytes, then the
response will actually have the whole manifest in it, so SLO doesn't
need to make a second request. (It's not wrong, just inefficient.)

Fortunately, ranged GET responses come with a Content-Range header
that tells us first byte, last byte, and total content length. Now SLO
detects whether or not a ranged GET response contains the full
manifest, and if so, just uses the existing response instead of making
another.

Change-Id: I63b991e08a1165eb3e88bd0620a1e64ef056fec6
Merge "Small efficiency improvement for SLO range GET"