Implement cache

Set up basic caching for api requests based on user submitted queries. This will close out issue #1.