Stop getting useless bytes on manifest Range requests.

If you make a range request for a manifest object, then the proxy can
retrieve more data than it actually needs from the object server. It
sends the right bytes to the client, and then spends a bunch of time
reading and discarding bytes it doesn't need.

Example:

   file start  	       	       	       	       	       file end
       |	range start	  range end		  |
       v	     v         	       v       	       	  v
       [--------------------------------------------------]

The proxy would send a request to the object server with "Range:
bytes=${range start}-", and so the object server responds with all the
bytes from range start to file end. This needlessly transfers all the
bytes from range end to file end, as none of those are sent to the
client.

This commit fixes the sent Range header to only request the bytes
needed.

Change-Id: Ie8d4ee2c5e67c08795ac2d39d1df7d11856621a9
Merge "Stop getting useless bytes on manifest Range requests."