Bug 1078029 - Add code to reposition input event coordinates into the target frame. r=

The PositionedEventTargeting code allows input events to be dispatched to a
target not directly under the input event point. However, the coordinates of the
input event can then end up outside the bounding rect of the event target. This
state is generally unexpected by web content and may cause compatibility issues.
Fennec's front-end code used to deal with this by repositioning the input event
coordinates to be inside the bounding rect; now that Fennec is using the shared
C++ code we need to have that code here. This behaviour is guarded by a pref and
disabled by default (but enabled on Fennec).
Bug 1078029 - Dispatch a dummy mouse event so that browser.js can pick up the event's retargeted target. r=
Bug 1092139 - Make the PositionedEventTargeting code respect the flag to ignore root scroll frames. r=

The ignore-root-scroll-frame flag is used on mobile platforms in order to allow
hit-testing outside the viewport area. This is needed because the user can zoom
out and make visible an area larger than the viewport (i.e. the displayport) but
layout generally restricts hit-testing to the viewport. The code to retarget
events to nearby clickable elements also needs to respect this flag, otherwise
the retargeting fails to work outside the viewport area.