Bug 1016184 part 3b - Revise touch caret visibility logic. f=pchang, r=ehsan

* Refactor UpdateTouchCaret() into smaller functions.
* Update touch caret in PresShell::DidDoReflow() and
  PresShell::UnsuppressAndInvalidate() if needed.
Bug 1016184 part 3c - Fix test_focus_disabled.html. r=ehsan

Move the witness down so that touch caret won't cover other elements
when witness is focused().
Bug 1016184 part 3d - Fix test_bug644768.html. r=ehsan

Rename test_bug644768.html to bug644768.html, and change the original
test_bug644768.html to an iframe container.

Thank Steven Lee <slee@mozilla.com> for the original WIP patch.
Bug 1016184 part 3e - Fix test_reftests_with_caret.html. r=ehsan

Turn off the touch caret preference to fix test cases that ought to be
failed by definition of the touch caret behavior.

Thank Steven Lee <slee@mozilla.com> for the original WIP patch.
Bug 1016184 part 3f - Fix test_paste_selection.html. r=ehsan

Thank Olli Pettay <bugs@pettay.fi> for suggesting
sendMouseEventToWindow(). This is a tremendous help!
Bug 1016184 part 3g - Disable auto-hide feature in mochitest and reftest. r=ehsan
Bug 1016184 part 3h - Fix horizontal scroll bar appears. r=ehsan

The touch caret frame is initialized at (0, 0). When <html> or <body>
has dir="rtl", "margin-left: -15px" (in ua.css) makes the horizontal
scroll bar appear even if the touch caret is invisible. To compensate
this, add "left: 15px" to make the touch caret frame initialized within
the viewport so that horizontal scroll bar won't show.
Bug 1016184 part 4 - Enable touch caret by default on b2g. r=ehsan