switch from dojo/domReady! to requirejs-domready/domReady, refs ibm-js/deliteful#136
use requirejs-dplugins/has rather than dojo/has
a11y.js: remove dependencies on dojo/dom* modules
by accessing properties and attributes directly.
BackgroundIframe.js: declare classes using dcl() rather than dojo/_base/lang.
Container.js: Use Node.insertBefore() rather than domConstruct.place().
css.js: Fix many test issues and remove dojo dependencies.
Specifically, use Node.insertBefore() rather than domConstruct.place().

css
CustomElement: Use parentNode.removeChild(this) rather than domConstruct.destroy().
Make Destroyable#own() handle Promises.
Also, avoid double destroy when handle has multiple destroy methods (ex: destroy() and remove()).
Fixes for dijit bugs #17763, #17680.

Cherry pick from dijit of:

- 797f9a9d5e08aa0e208691e7086a679c8c630e30,
- 0169fa4b37922aaf17cd1ebc034fc00b27353878
- 9234eeeffcd957152dd4c0307d76aeff76ec933a
- e5dcf8ee33dadc4a84a4432497dc407d8549f65b
DialogUnderlay.js: Use native methods rather than dojo/dom*.
Likewise for winUtils.get().
focus.js simplifications, forward ports, and reduction in dependence on dojo core.

1. Get rid of focus.curNode/prevNode; can just use document.activeElement.
2. Change API to see new widget stack from watch() to on().
3. Use native methods rather than dom.byId(), domAttr.get(), winUtils.get().
4. refactor, cherry picked from dijit b24525552996dee6c41e299df5f995ba91953b91
5. support for pointer events, cherry picked from dijit 2dcb4e325792caca5bd4ee053a8d7e390c619fff but not using has("...")
FormValueWidget.js: remove unused dependency.
FormWidget.js: use native methods rather than dojo/dom-style.
HasDropDown.js: remove unused dependencies.
place.js: use native methods rather than dojo/dom-style.
popup.js: use native methods rather than dojo/dom*, except for dom-geometry.position()
uacss.js simplifications

1. Remove setting of box-model CSS class.  This code existed in Dojo V1 mainly for IE
    running in quirks mode.  In modern browsers, everything is content-box model,
    unless you set CSS to override that.  But the CSS for border-box sizing can
    be set on any node, not just <html> or <body>, so I'm not sure it makes sense to
    try and detect it.

 2. Remove code for checking if document is in RTL mode.  I think this can be done through direct
     CSS, i.e. "[dir=rtl]".
Widget.js: use native methods rather than dojo/dom*.
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 commit 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 pick of dijit d641c3fc801a582e7517d9a478152e54f331f52b.