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.
"selected" can be created in "mixin" then, you don't need to create it in all objects. (like `listeners` in EventDispatcher)
EDIT_MODE_TITLE can be an argument to the "mixin" method.

We can also pass the container node as argument, so that the mixin can listen to it. I'm not sure this is a good idea though, because that means we'd need the DOM at mixin time.