Refactor empty() to work better on non-IE browsers.

1. Test node.innerHTML rather than node.canHaveChildren(), since the latter
only works on IE.
2. Limit empty(parent) to orphaning parent's children, rather than orphaning
parent's grandchildren.

Fixes #17869.
Document addOnUnload() and add addOnWindowUnload() as deprecated, refs #17870.
Check for objects with a truthy clause to avoid nulls, fixes #16158
Support custom fixupUrl function; fixes #17643
Add commented out test case for when #16957 is fixed. Refs #16957.
Do not use -ms-user-select to prevent selection of elements in IE

Fixes #17639.
Made declare.createSubclass() mixins parameters optional.
Check for array of events first, to avoid illegal string check on arrays,
fixes #17023
fix native FormData feature detection on ios6, fixes #16022
fixes #13561, gotoPercent has no effect on fx.chain
fix file permissions, fixes #17919 in dojo
Added getTarget for handling of trailing slashes in target URL
Fixes issue #16691
- Corrected spaces around braces.
- Removed handling of options.
- Removed `allowNoTrailingSlash` parameter. Always use `getTarget`
Replaced `match` with `charAt`
Adds support for non-trailing slashes on JsonRest target, refs pull
request #14, fixes #16691
Remove options to _getTarget, refs #16691
fix lang.exists() corner case and add unit tests, fixes #16291
fixes #17687, set ContentType to false when FormData is used
fix dom-style.get for IE11+, fixes #17962