Bug 1074732 - [Messages] Create a mixin to handle the select UI model

- Create a selection mixin and extend the methods into view modules.
- Unify the UI update into one method and adjust the update flow to change the selected data first, then update (visible) UI based on data.
wondering if a Set would be nice here. It should be faster for "has" and "delete" operations. We can have a lot of elements here.