Caching

@fourseven I saw you were hacking on caching, so I thought I'd open this issue to discuss options.

What I'd like to do is replace Net::HTTP with [Faraday](https://github.com/lostisland/faraday), and leverage Faraday middleware to handle caching, with optional persistence (preferably Redis, which is available for free on Heroku).