Improve visual height and vertical alignment of caret

Implementation makes judicious use of the cursor's selection and
getClientRects to compute small adjustments necessary to make the
caret more closely match the browser caret positioning.

At the moment, each cursor must be re-fixed after any operation that
may affect the line height of the caret (e.g., removing a text char may
place cursor next to a larger text character)

This implementation has been tested with
- Forward & backward selections
- Wrapped text & white space
- Image deletion
Update remote caret vertical alignment when moved
Improve commenting around complex selection rectangle calculation in Caret
Change minimum caret size to a font size of 6pt
Revert unneeded modifications to Cursor and OdtCursor