Support tabbing through controls in modals, popovers, and selects

I rebased the work that @thangdinh did, as he will be unable to work on this for a while. Not very familiar with the code, so hoping that someone else is.

@cyril-sf @azirbel @Dylnuge @jpriceAddepar 
The rationale behind not having the ability to bind-attr on inverses is that application logic shouldn't be in templates, so I'd personally prefer if we did an `isDisabled` that could then be safely extended if we wanted more logic controlling the disabled state than just validity. This would be just a semantic change here (it'd be effectively renaming this to `isDisabled` but the rename would make it clear that it shouldn't be relied on to be `false` iff `isValid` is `true`).

Also, the inverse of `isValid` should just be named `notValid`.