Handle lack of .width and .height from getBoundingClientRect() in IE8

Closes #14093. Correction to #14090.
New relevant docs: https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect#Browser_compatibility
This takes the same approach as ZeroClipboard.
CC: @fat
IE8 doesn't let us add new properties to `TextRectangle` instances, so we have to make a whole new object (or use prototypes).