Add rudimentary HTTP caching

* The calls to GitHub for contributors and commits lists are not cached,
  which can result in a lot of overhead. We use an in-memory cache to
  cache the responses from GH. The `faraday-http-cache` gem figures out
  caching and expiry strategies based on the headers returned by GitHub.
  This means that if any change takes place in the repo (upstream), new
  data will automatically be fetched and the cache gets updated.