fixes #17810 touch/pointer events feature detection.
- clarifies has("touch")
- adds has("touch-events"), has("pointer-events") and has("MSPointer")
- updates code in dojo/dijit/dojox to use the new has (only when it does not impact the current logic).
Fix tabbing through Fieldset widget on chrome and safari.

Webkit is buggy with tabstops on <legend> nodes so switch focusNode to the
<span> inside the <legend>.

Fixes #17428.