Cachebusters!

This is a first attempt at properly invalidating cached responses to allow us to a) set memcache to not expire and b) cache responses in the datastore. This will make the site faster, cheaper to host, and can reduce the data transferred to our upcoming mobile apps (using the `If-Modified-Since` header).

This PR sets the memcache expiration for the API v2 controller responses to be infinity and invalidates the entries if any model within a particular controller's response gets updated. It does this by checking for reference keys in the manipulators, and if the model becomes dirty, makes a call to `helpers/cache_clearer.py` which defines which controllers are affected. If a model gets deleted, a similar process occurs. What this means is that all interactions with the datastore anywhere within our app MUST make use of the manipulators.

Currently, the only models I'm dealing with are Award, Event, EventTeam, Match, and Team (the only ones that API v2 use).