Clean up the focus handling for text input
Usually, a client will only use text input v2/v3. Do not return the focused surface for text input if it has no relevant text input resource. If text-input object is created after surface get the focus, send enter to this text input object. Ensure sendEnter and sendLeave always appear in pair.
Also, use the same technique in text-input-v2 for text-input-v3 to handle per resource's enable/disable state, and only send update to enabled text-input-v3 object.
Edited by Xuetian Weng