Bug 1016184 part 3a - Fix typos and minor style changes. r=ehsan

Also group the private section together, and remove the protect section
since TouchCaret is a MOZ_FINAL class.
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 4 - Enable touch caret by default on b2g. r=ehsan
Bug 1016184 - part 3h - Fix horizontal scroll bar appears. r=roc

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, make width, height, and margin be 0px when the touch
caret is invisible.