Fix handling of TreeView add/remove events

* Previously, if multiple "remove" events happened before the
  `queue_event` timeout, `oldList` would only reflect the latest event
  instead of the sum of events.
* Now, make `oldList` changes incremental and wait for 20ms since the
  *last* "remove" event before actually removing objects
Merge pull request #1356 from reciprocity/feature/fix-tree-view-add-remove

Fix handling of TreeView add/remove events