There is some funny business with caching and get_all. The trick with get_all and caching is you don't know the features so you can't do a get_multi for all features. This left two obvious options:
Option 1 meant get_all would be 1 network call which was dope. The downside was it would not share the primed caches from
Option 2 was to do an unless exists
This was failing before because memoizable and any adapter that didn't define get_all would do features + get_multi by default. This fixes that by adding get_all to AS CacheStore adapter and adding a spec that simulates requests against the memoizer middleware when preloading all. Still need to add get_all to the other caching adapters likely.
A bit more code but doesn't store them twice.
This prevents getting all features and then checking a feature that is not in the set of known features from kicking off additional adapter calls and thus additional network calls.