Bug 1072769 Part 1 - Add TouchCaret::GetCaretFocusFrame().
Bug 1072769 Part 2 - Fix touch caret not show when focusing in js.

IsDisplayable() tests two ideas: whether the caret shows, and whether
the caret's position data is available. We should really separate the
two ideas by adding IsPositionAvailable().

When SyncVisibilityWithCaret() is called in
PresShell::SetCaretEnabled(), caret is visible, but its focus frame and
rect might be unavailable. We use mPendingVisible to track this status,
and get a chance to set touch caret visible later when
UpdatePositionIfNeeded() is called in PresShell::DidDoReflow().
Bug 1072769 Part 3 - Add a reftest for touch caret when focusing in js.

Originally, touch caret does not show in the test html, but it shows in
ref html. After fixing this bug, both htmls should have the touch caret.