Create request_test.go

Create a test to reproduce the bug
Fix bug in request.go

Handle the error returned by `r.client.http.Do(req)` in `Request.Do()`; this prevents the next line from crashing when it attempts to access `res.StatusCode` when `res` is `nil`
Made `Client.http` into an interface for mocking
Merge pull request #2 from weberc2/crash_on_request-do

Crash on Request.Do when Client.http.Do() returns an error