Bug 1075970 - The reverse (TargetObj-to-DOMElement) map introduced in Bug 1044525 is now one-to-many mapping.

- Since a layout may be associated with more than one rendered layouts (according to different input types and other flags), a target obj must be able to reverse-mapped to multiple DOMElements.
- The 'value' of the reverse WeakMap() (key'ed by target obj) is now an object of keyboardClass-to-DOMElement; the keyboardClass is decided by render as different keyboardClass values map to different physical DOM keyboard layout.
Merge pull request #24743 from mnjul/bug_1075970_no_highlight_after_switching_inputtypes

Bug 1075970 - The reverse (TargetObj-to-DOMElement) map introduced in Bug 1044525 is now one-to-many mapping. r=timdream