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 add a new dependency on `guzzlehttp/ring` to power the HTTP adapters, adding 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.~~

Closes #804, #800, #799