chore(cache): Add some nice new internal APIs for caching

This *greatly* simplifies caching logic, especially for memcache-related code. See Datalist.php for the example in this PR.

TODOs:
- [ ] Don't cache the "loadAll" results as a single entry.
- [ ] Implement incomplete tests
- [ ] Add back memcached et al support
- [ ] Add tests for refactored classes
- [ ] Split into 2 PRs/commits -- one to add new APIs, another to actually use them in existing classes
- [ ] Deprecate old Caching classes in favor of new ones
Don't know the answer to either question. Just seemed like a good idea since PHP doesn't have native string typehints.