Prevent cache clash for textinput width between password = True/False.

There's a clash in the cache if there ate two textinputs with identical text, one has password enabled, the other doesn't. You can see the issue with the following test code:

    from kivy.app import App
    from kivy.uix.boxlayout import BoxLayout

    class TextInputApp(App):

        def build(self):
            root = BoxLayout(orientation='vertical')
            textinput = TextInput(password=True)
            root.add_widget(textinput)
            textinput2 = TextInput()
            root.add_widget(textinput2)
            def t(instance, value):
                textinput.text = value
            textinput2.bind(text=t)
            return root

    TextInputApp().run()

Just type e.g. lots of w in the bottom textinput to see the issue.

Note, #2311 should be merged before this is merged.