Simplify the data store's caching strategy
To simplify the code and reduce the overhead, we should try a simplified cache strategy in the store. Instead of requiring everyone who is interested in a piece of data to subscribe to it, and clearing elements out when there are no subscribers left (after a timeout), we should make a simple reset function, which clears everything when navigating to a new upload page or entry page.
This is more similar to the old context approach, and should require less overhead and simpler code. The data store becomes more of a global cache. Subscriptions are still there to get notifications of updates, but are not required for keeping the data in the store.