Guzzle using ring adapters

This PR is a WIP that adds support for non-blocking future responses powered by guzzle-ring: https://github.com/guzzle/guzzle-ring. These changes adds a new dependency on `guzzlehttp/ring` to power the HTTP adapters. This adds support for non-blocking requests. There are a few minor breaking changes that are in this PR, so I think it would be wise to tag this as a 5.0 release.

The tests aren't passing yet, but I hope to get to that tomorrow.