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.
but it's nearly the same code; instead of methods, you'd have an option object, whose keys are defined by SelectionHandler. You can also assign them to thisInstance if you want. The boilerplate is a little bigger but the idea is the same, and we have cleaner code.