Allow multiple selections in Model and Set
Set uses now list of selected indexes instead of single index.
QListView::selectionModel() is responsible for the visual side.
When selectionModel() emits selectionChanged, we update Set.
When Set emits setChanged, we update selectionModel().
To prevent infinite loops the blocker flag blockSelectionModel is used.