foldermodel: lift screen add/remove handling out of screenmapper
screenmapper is the wrong place for it because we don't know the url inside the mapper. Instead handle events in the foldermodel and correctly delegate the add/remove actions to the mapper with both our screenId AND the activityId
notably the previous code would incorrectly invoke addScreen with empty activityIds triggering fallback handling that resulted in incorrect m_screensPerPath management (there would be no screen associated with our url anymore after a screenAdded signal because our screen got associated with no url) and consequently firstAvailableScreen would return no screen for our url (remember: we are associated with no url) making FolderModel::filterAcceptsRow return false and filtering completely valid entries
possibly also is the root cause behind CCBUG: 467092