wayland: Tie activate / deactivate to appears-focused

... rather than actual focus. This makes things behave better.
pointer/keyboard: Fix focus setting once again

Yet another large-scale restructuring... this is some messy code.
pointer: Make the code here a bit clearer
pointer: Don't send modifiers on mouse enter

I talked to Kristian about this. It should be enough to simply
send it when we activate the surface and give it keyboard focus.