Add chain cache

Hi,

I didn't finish with the tests yet, but this PR introduces a chain cache. The use case is when you need to fetch multiple times per request, and that you know in advance there is strong locality, so you benefit from first fetching from fastest to slowest cache.

If you like the idea I'll finish the tests.
nvm, just saw that the interface allows `null` for a return type. Anyway, I suggest returning an array with all the `doGetStats()` from all the other adapters instead.