Refactor and enhance KeyNav.

- Efficient implementation of _getNext(), so subclasses don't need to implement it.
- _getFirst(), _getLast(), _getNavigableChildren() removed.
- Removed dojo/on and dojo/query dependencies by using this.on(), and manually implementing
   the focusin event delegation.

Migration notes:

- Subclasses should stop defining or _getNext(), _getFirst(), and _getLast(), and should stop referencing
  _getFirst() and _getLast().
  In particular, their implementations of _getNext() may not work anymore; there are new requirements
  that it take a dir parameter, and also that that instance._getNext(instance, 1) gets the first child,
  and instance._getNext(instance, -1) returns the last.
- Be sure to define childSelector.  It was always required, but now may be even "more necessary"
  than before.
Remove Widget#isFocusable() and KeyNav#_get*FocusableChild() methods.

These methods seem to no longer be needed.
If a KeyNav contains disabled children (like disabled buttons in a toolbar),
you should be able to filter them out via the childSelector, ex: ".button:not(disabled)".
new css loader plugin