Fix IE problem with caret disappearing or not moving on ENTER.
Happens with EnterKeyHandling plugin when blockNodeForEnter=BR (the default setting
for an editor without any plugins explicitly specified).

Also fixes FF problem on ENTER with caret moving to beginning of current line,
rather than beginning of next line.

Code changes:

- this.editor.selection.collapse(true) doesn't work well when the selection is the \n at the end of a document.
  So trim() whitespace from the end of the document on load.
- Don't call remove() on the current selection as it causes havoc with the caret.
  Code to call remove() was added in 08c381738d5c1da53099db51848d94fde3c3249d for #12008,
  to remove the &nbsp added, but now I'm handling this in _stripTrailingEmptyNodes()

Unfortunately this change needs to be manually tested,
since doh/robot doesn't know where the caret appears visually.

Fixes #17745, refs #12008.
Add isLoaded check to RichText#getValue to avoid errors when the iframe has not yet loaded.
Fixes #15134.
Fix alignment of right aligned dropdowns, fixes #17744
fixes #16939 IE hangs when switching between multiple editors / refocusing browser window, the problem also happened on IE8 and IE11.
Remove evt.preventDefault() calls on dropdown mouse events.

The evt.preventDefault() on mousedown breaks ComboBox on iOS, by cancelling the mouseup
and click events, thus preventing selection of an option.

According to the comment, the evt.preventDefault() call on mousedown was to
"prevent focus shift on list scrollbar press".
But I still lost focus when clicking the scrollbar, at least on IE8.
Plus which, even if clicking the scrollbar loses focus, it doesn't seem like a problem.

There were also evt.preventDefault() calls on the other events (mouseup, mouseover, etc.) but I
don't see any reason for them.

Fixes #17752 on trunk.
InlineEditBox: destroy save/cancel button widgets, fixes #17748
test for BackgroundIframe on all browsers, refs #16268
Don't treat SPACE as the start of a keyboard search.
Add KeyNavContainer robot test.
Fixes #17766.
Fix menu positioning when opened via keyboard.  Fixes #17769.

Changes include:
  - make keydown handler process context-menu key in addition to shift-F10
  - (for keyboard) open menu around focused node rather than node matching
    this.targetNodeIds / this.selector
  - different approach to avoid repeat contextmenu key event;
    1ms delay in _scheduleOpen() was too short; there's about 100ms between
    the keydown and contextmenu events on IE8
remove unneeded CSS that flummoxes IE, fixes #17672
fix tooltips on SVG nodes on FF, fixes #16310
fixes #17751 use native placeholder support for form inputs
reuse background iframes between (non-currently shown) popups, fixes #17774
Added unit test assertion for #17746
fix dijit typos, refs #17778
Prevent container scrolling in IE on long tree labels

Fixes #17765.
Revert "fixes #17751 use native placeholder support for form inputs"

This reverts commit 63486c0569d7ba60e351cf01f36dd8f007ed3b48.

This commit caused backwards-incompatible changes to the toolkit
that will break existing users, and introduces a feature that
is not cross-browser compatible (HTML5 placeholder styling is
not consistent) in order to fix an unrelated defect.
fix #16482 Regression: _WidgetBase#placeAt() can't be used on a
DocumentFragment

* added tests for placement using document fragment
* updated WidgetBase.placeAt to allow a document fragment
Limit background iframe to IE; it's no longer needed on other browsers.
Also switch test from java applet to PDF, since the java applet wasn't loading correctly.
Fixes #17811, refs #11822.
Avoid double destroy when handle has multiple destroy methods
(ex: destroy() and cancel()).  Fixes #17763.

Thanks Benjamin Santalucia for patch!