Don't call _fireSelectionChanged() twice

Working set selection was getting painted twice. `_updateListSelection()` already calls `_fireSelectionChanged()`, so don't call it again.

This saves ~50ms (of 190ms) on my Windows 7 system.

After removing `_fireSelectionChanged()` call from `_handleDocumentSelectionChange()`, there was nothing left except call to  `_updateListSelection()`, so I removed `_handleDocumentSelectionChange()` function and just call `_updateListSelection()` directly.

This is for #4757, but there may be more we can do.