Bug 1016184 part 3b - Revise touch caret visibility logic

* 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

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

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

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 4 - Enable touch caret by default on b2g
Bug 1016184 - Debug test_paste_selection.html