Add caching

Pulled out the repeated use of request and added a cache
20 minutes is the TTL of the CAPI, personally I would like to be able to set the TTL for each cache item based on the response header from the API but at the moment I needs to be set at the cache level. 5000 items should comfortably fit inside the memory footprint of a normal Heroku dyno. This was based on some fairly rough calculation on the average size of a response.