Make cleanup return a future[Unit] for the async caches
use toSeq instead of trimTo(0)
Add in two new options for the MultiTriggerCache:

High memory water mark when to flush

and when to crush down a value