Use faraday instead of raw net/http

I decided to go with Faraday instead of Typhoeus

* faraday uses net/http, so it doesn't introduce as many new dependencies as typhoeus, which uses libcul and ffi.
* fakeweb can only test net/http, so it would have taken an enormous amount of refactoring in order to move the test suite to work with typhoeus
* in general i have grown to like faraday's approach