Bug 1084298 - [Messages] Decoupling the all inputs query logic from DOM tree structure

- Add map for each view for maintaining the data for rendering/selection
I don't know yet for storing the map. Actually, for ThreadListUI, I'm not sure that the privateMembers weakmap is that meaningful because ThreadUI is essentially a singleton and will have one instance only. So maybe having things in the closure is good enough?

about the other question, there is a famous design pattern called "decorating". In Java, we have lots of useful decoration for maps, one is called "unmodifiableMap" (see http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#unmodifiableMap%28java.util.Map%29). This is very nice because this has no performance limitation. You just return an object that has the same interface than Map (including @@iterator), delegates all read methods to the underlying map, and throw for all write methods. I think we could/should use this for all functions that provide read access to some internal methods.