Change TextInput to inherit from FocusBehavior.

* This change enables automatic handling of the keyboard by the FocusBehavior parent, and removes all keyboard stuff from the TextInput itself. With this, TextInput now becomes focus-aware.
* I also added a `write_tab` prop, which if True, a tab is written when tab key is pressed, otherwise, focus moves to next focusable widget.
* It disables the `keyboard_mode` prop in TextInput because it's superseded by the `keyboard` of FocusBehavior. That prop was added in 1.8.0 so it does break backward compat, but I'm not sure how many people would already be using this, and there was no easy way to keep it. However, it can be done if needed. I.e. I can make `keyboard_mode` control `keyboard`.

This is a rebased version of the other pr.