datastore: client - read HTTP before 2 operations that eventually read it

This may go against the principle of failing fast. I'm proposing it because the HTTP body read operation is called in 2 places, and I think it could be called in just 1.

Thoughts?
could you also add 

``` go
defer r.Body.Close()
```

before L26?

Did you sign one of the Google's Contributors licenses before? If not, the instructions are available on https://github.com/golang/oauth2#contributing (This package is a prototype, so it is lacking a CONTRIBUTING file, sorry.)