Fixes for insertion point caret rendering
This contains several fixes for the code to position and render the insertion point. The main effect is that the insertion point is now rendered correctly when in an empty input field. See the individual commit messages for more detais. r? @pcwalton
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10361)
<!-- Reviewable:end -->