Refactor notification caching
In-memory caching work fine on single instance, however there is no simple way to sync notifications between multiple instances of notification system.
However we still need in-memory representation of notifications, so just rework syncing this in-memory cache with state on hdd.