API Better implementation of caching / rate limiting
Depends on https://github.com/silverstripe/silverstripe-framework/pull/3047
TODO:
- Documentation and more test cases
- Update / invalidate cache on write