Take zoom levels into account when drawing the caret (issue #127)

In firefox, range rectangles are not affected by transforms applied to
the start and end containers, however, in chrome, the range *is*
transformed.

For Chrome, this means differences between range rectangles need to be
scaled according to the current zoom level in order to be correct. In
Firefox, this scaling is unnecessary if two ranges are compared.

Additionally, in firefox this means mixing range and element client rects
will result in undesirable behaviour due to the different transforms
applied to each.

See related firefox bugs:
* https://bugzilla.mozilla.org/show_bug.cgi?id=863618
* https://bugzilla.mozilla.org/show_bug.cgi?id=816238

http://dev.w3.org/csswg/cssom-view/#extensions-to-the-range-interface
Section 10, getClientRects, "The transforms that apply to the ancestors are applied."

Inverted bug detection logic
Correct virtual cursor drawing location in FF when zoomed in or out

All virtual cursor calculations are now down using range bounding client
rects rather than element-based rectangles, so proper scaling can be
achieved.
Merge pull request #155 from peitschie/caret-zoom

Take zoom levels into account when drawing the caret (issue #127)