Bug 1044525 - Use a WeakMap to hold layout key objects, mapped from DOM elements, to avoid poking with DOM elements in various modules aside from renderer.

- render.js's key properties normalization is now done in layout_key_normalizer.js. The normalization for static layouts takes place in layout loader, when the layout is loaded. Layout Manager's on-the-fly generated keys are pre-normalized.
- Also, removed parseInt() on keycodes where suitable as we now retreive "number" from the objects held by WeakMap.

We have two WeakMaps, one maps DOM element to abstract target objects ("forward" map), and one maps inversely ("reverse" map)
Policy of accessing those WeakMaps is:
- IMERender and AltCharMenu(View) can set both forward and reverse maps by calling IMERender.setDomElemTargetObject, a small helper function.
- Everyone can retrieve forward mapping (elem to obj) in layoutRenderingManager with LRM.getTargetObject.
- Only IMERender and AltCharMenu(View) can retrieve reverse mapping (obj to elem) accessible through IMERender's reverse map (targetObjDomMap).
 -- currently we need to allow AltCharMenuManager to do so 'coz their responsibility and coupling aren't very clear.
 -- we probably need some refactoring work to reassign the responsibility and coupling such that targetObjDomMap isn't unnecessarily exposed.
We have had dataset.keycode and CSS selector [data-keycode], so when I replaced keycode naively into keyCode, I kinda had to change CSS selector to [data-key-code]. I didn't take efforts to do that originally. But on a second thought I think it probably wouldn't be too hard to coalesce them in this bug. Let me see what I can do.

I tend to keep keyCode and eliminate keycode, as changing keyCode into keycode would require a huge amounts of layout files modifications.
If we change keycode to keyCode, then we probably want to change keycodeUpper to keyCodeUpper too. Also, we probably want to still use dataset.keycode instead of dataset.keyCode to avoid additional CSS selector changes, if that sounds reasonable.