Encapsulate UI thread dispatching for cell view model operations

Put details of dispatching to the UI thread inside AddCellVMs and
RemoveCellVMs, instead of forcing callers to do this.  The collection
of cell view models is bound by the map view so changes to it should
happen on the UI thread.