Split getSelectionRect into bounding and inline

Non-embedded contexts should always use bottom-middle of the bounding
box, unless that doesn't touch highlight, in which case we use the
bottom inline rect and place the context at the right corner of that
(or left in RTL).

Bonus: Rangy doesn't understand RTL so stop using Rangy and calculate
start and end positions ourselves.

Get rid of FocusableNode#getDimensions as the dimensions are
inside getBoundingRect.

Change-Id: I00ab986bacbf4e73714d810bc6ca109a5dd4df02
Kill rangy (almost)

Replace simple range getting and setting with native Selection/Range
api that is supported by Chrome/FF & IE10+.

Bonus: Fix documentation in ve.ce.DomRange, and variable names
in various places.

Rename getSelection to getRangeSelection to avoid confusion with
native method.

Fixme: Some tests in ve.ce.TestRunner were pretending to pass because
of a typo (startNode instead of startContainer). Have been logically
commented out with an if(false) but should be fixed in later.

Change-Id: If6f5f59f96b0787b0a4545d430dae3ef0b8deb4d
Kill rangy: Vol. 2

Write a minimal replacement for getPositionFromCoords, that is trivial
in Chrome and Firefox, and uses TextRange.pasteHTML in IE.

Bonus: work around IE's lack of type support in dataTransfer so drag and
drop actually works in IE.

Change-Id: I40830dde018759078324e4650d5acace1c1fa849
Merge "Split getSelectionRect into bounding and inline"
Merge "Kill rangy (almost)"
Merge "Kill rangy: Vol. 2"