"heat reauth", with general-purpose 401-handling pure HTTP client

So, this is a big branch, and is probably still pretty rough.

NEW STUFF:

- pure_http, a new library for purely functional HTTP requests
- heat_client uses pure_http
- some testing utilities

This branch adds a dependency on the "effect" library. It currently uses *unreleased* features of that library, I'll do another release of effect today to get everything in sync.

It also adds a dependency on "characteristic".

It also has manish's IsBoundWith branch merged in, so the diff currently shows that code.


NOTE: right now there isn't actually a reauthenticating function *implemented*, just the framework for invoking it to get the new token, and then using that new token. 
I think it will be better if this doesn't take auth token. It should get the auth token from auth function before making the request. This way the logic of caching/getting token lies in the function that can be changed according to the situation.