Overhaul model assignment in views and centrally manage models
This MR incorporates each view's models into a shared InfiniteCalendarViewModel. This has several benefits:
- Models and their data can persist on view change, reducing the loading times when switching back and forth through views
- We can now run pathview delegate loaders asynchronously, vastly cutting init loading times
- We can now run one instance of handler functions that check if new row insertions in calendar and data changes are relevant to the incidenceoccurrencemodels
- We can check if new row inserts contain items we have already checked
To prevent this from getting out of hand, there are mechanisms to limit the number of co-existing live models.
Edited by Claudio Cambra