Cache API v2 responses in the datastore

Now that we have cache invalidation, we can have caches that don't expire based on time! This PR caches all responses from API v2 in the datastore. In the future, when everything is using the datastore cache, we should be able to remove the memcache completely, since NDB does it's own memcaching.

This does leave stale entries in the DB if the cache version gets rolled. We can have a cron job that deletes old entries based on `updated` if storage space becomes an issue.