Better API caching for site

A couple major changes: 

* We now attempt to cache all results from the API instead of just a select few

* We have also now transitioned to using the Django caching mechanism instead of dictionaries. This gives us more flexibility in the long run for more sophisticated caching backends.