Make all storages compatible with buffering
- implement buffering interface (which should be made explicit) in all storages because buffering would crash if storages where ordered differently: flush and clear_buffers, which just chain-call for non-buffering storages
- improve typing of the buffering interface, removing spurious Optionals
- improve BufferedProxyStorage typing with literals
Dynamic features based on dicts of literals (e.g. object buffers, statistics) should be made more static to catch many potential mistakes.
Depends on !579 (closed)
Migrated from D4018 (view on Phabricator)