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 we need to set the "target" as value? We use the value in ThreadListUI but we can find it using getElementById from the id. In the future we won't have a DOM node for every element, so I think it's better to be closer to the future model right now.