add the super simple BasicCache, a size-limited defaultdict-like thing
add a test for BasicCache