Fix bad use of sub.apply and other lifecycle improvements (plus cosmetic changes in unit test)
Focus manager: don't require id's on widgets.
This changes activeStack to contain widgets rather than widget id's.
I updated the test but I can't actually run it, since it still referencing
old dijit widgets.  It also needs to be converted to Intern.
update to Intern 1.4, refs ibm-js/deliteful#34
KeyNav: fix tabIndex and other problems, and write proper tests.

Don't put tabIndex in the KeyNav prototype.  It triggers Stateful to create a custom
tabIndex setter which then triggers Widget#enteredViewCallback to
call the setter on widget startup.  We don't want any of these things to happen.
Rather, the app should be able to set/change tabIndex on the element (i.e. widget
root node) without any interference/action from delite.

The only thing that we really need to do is to set tabIndex to 0 if it was not
specified explicitly by the app.

The test changes include:

- test letter key search
- test left, right, home, and end key callbacks
- test programmatic creation
- test childSelector as string and as function
- more extensive tabindex checks

Fixes #62.