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

- Unbind the selected inputs logic from DOM tree structure. Create a selection module that listens to input select changed and return the selected data.
I set the element in the map for now to minimize the changes, but I believe there should be a better way to store as simpler object. Looks like an object {isDraft: boolean} for map value should be fairly enough for Draft case? Or maybe using array instead of Map(but it will increasing the efforts for checking if the target is in the selected array already)?