Widget.js: Use native methods rather than dojo/dom*, except for dom-class.

Also beefs up tests for Widget#placeAt():

- Add proper test and fix doc for Widget#placeAt(node, "replace"),
- Add tests for Widget#placeAt() on a DocumentFragment,
  cherry picked from dijit 38230b8c473fa1be0410366d9454332c5f38d44e.
- Clean up Widget#placeAt() tests in general.
Fix dropdown positioning problems on mobile when dir=rtl.
Rolls back changes to place.js from 33dc9b874f74e1bf180f9cb6f3c14d13a0fb7a90
about setting drop down's style.right, and instead always sets style.left.

Fixes #17732, refs #5777.

(cherry picked from dijit eecfebfd88c6c56b38b8015f62e2b3ea4ebb9287)
Fix alignment of right aligned dropdowns, fixes #17744.
Cherry picked from dijit 0984b1ee62a6659b3f9013a34f16357cf8cabb99.
Don't treat SPACE as the start of a keyboard search.
Fixes #17766.

Cherry picked from dijit d641c3fc801a582e7517d9a478152e54f331f52b.
Fix popups on SVG nodes on FF, fixes #16310.

Cherry picked from dijit a696ceb7e4fd6c793327df992ec5d972e08781aa,
but moved from Tooltip test to plain place test.
reuse background iframes between (non-currently shown) popups, fixes #17774

(cherry picked from dijit 1deec0aa1bbf4d8602b2886c80c05ab2ac235f9e)
Switch BackgroundIframe test from java applet to PDF,
since the java applet wasn't loading correctly.

(cherry picked from dijit fb0203a01d0869ad5278c5675d986698209a7c24)
Workaround iOS bug where clicking Menu can focus/click an input/button behind it.
Fixes #17816.

Cherry picked from dijit:

- e9a09987211acd8b3b59ed2359b4d21fef099913
- 7efe39728726534c59abc5e82afcff4e3c1ade8c
- af2b3c2d13a83aaf0a217eac99e674a1ae253f96
Update source code comment and fix typo.
Cherry picked from dijit b7d6d40767ca6aca9d5b2d228f1a42447cf6407a.
CSS position properties in popup._repositionAll() are now treated as floats instead of ints, fixes #17990.

(cherry picked from dijit 8c920c8b6da7d015c19c74049387f82af1611ef7)