Draw selection overlay over space characters when selecting backwards

Selections going backwards (to the left in a LTR language) were not
allowing character elements such as spaces to be selected, as the
selection view was incorrectly using the right-side of the selection
rectangle.

Unfortunately, in Chrome, a collapsed selection reports a width of 1px,
and using the left-side produces a rather odd looking overlap on the
previous character. To workaround this, the rectangle calculation now
uses the bounding client rectangle instead.
Hide selection overlays for a region selection

A region selection is made when the user clicks directly on an image or
another object that will have a custom frame drawn around the target. In
this case, the selection overlay should not be drawn on top.