storage: close response body on header parse error
storage: close response body on header parse error

NewRangeReader returns an error if the X-Goog-Stored-Content-Length
header fails to parse, but doesn't correctly close the response's body
when it does.

This stems the leak in issue #372, but doesn't fix the underlying error
(that header should always be set+parseable).

Also, clarify on NewReader that the caller must call Close when done.
Drop the strconv's error from the returned error on parse failure (since
it doesn't add any additional information and repeats the header's
value).

Change-Id: Ie600b0d52828a785f2a999f753aba0f5aa71705e
Reviewed-on: https://code-review.googlesource.com/7670
Reviewed-by: Michael McGreevy <e70fec140fa6773c6cfd45cb9b436bd6334f4c24@golang.org>
Reviewed-by: Jonathan Amsterdam <e3d3698b2ccd5955e4adf250d0785062d0f9018b@google.com>
Reviewed-by: Brad Fitzpatrick <ae9783c0b0efc69cd85ab025ddd17aa44cdc4aa5@golang.org>

michael-grosshans/google-cloud-go,michael-grosshans/google-cloud-go,googleapis/google-cloud-go,googleapis/google-cloud-go,googleapis/google-cloud-go,googleapis/google-cloud-go