Default implementation of tab selection model. Listens to the supplied data
model and updates the selection appropriately on all add/remove events so that
the actual selection does not change if items are inserted into the model ahead
of the current selection, etc.
author: Tim Boudreau