Add ContentLength to Response struct

It allows for a more performant read on the body by doing:
body := make([]byte, 0, res.ContentLength)
_, err := io.ReadFull(res.Body, body)