Always use left-edge when positioning caret basd on the cursor

The IME menu was incorrectly moving along with the caret after the
text being composed, rather than stying fixed under the complete
word that is still under composition.

This regression was introduced in 5378fed.
Provide a better caret position fallback when no visible rects are found

In the specific situation where there are no visible rectangles nearby
from which to calculate the caret position and size, the cursor node itself
will be made visible with some hidden internal text as a substitute.

This ensures the caret is correctly aligned in empty paragraphs that are
not left-aligned, or in an area surround by non-visible rects such as near
multiple annotations.
Remove another unnecessary inline-block

The cursor element is now only visible when it contains either text
or the caret-size helper. In addition, there are no longer any fixed
widths being applied to the cursor element, so the inline-block is not
necessary.