Changed kv to only bind to EventDispatchers

Currently kv tries to bind to any widget with a 'bind' method, but this mostly does nothing and fails if the bind method doesn't do the right thing.

This causes a problem for referencing fbos (e.g. self.fbo.texture), since they have a bind method that does a different thing.

I just replaced the `hasattr(f, 'bind')` with `isinstance(f, EventDispatcher)`. This doesn't seem to cause any problems, but of course I could have missed a different purpose of the current way...