data-device: Don't poke into MetaWaylandKeyboard

It needs to know the wl_client that has keyboard focus, so add a simple
getter for that.
pointer: Make sure to care about FFM even if the client didn't get a
resource
pointer: Clean up a tiny bit
pointer/keyboard: Surfaces should always have resources

There's no possible way that they shouldn't.
pointer/keyboard: Stop using focus_resource for anything unessential
pointer/keyboard: Remove focus_resource_listener

In order to support multiple pointers for the same client, we're
going to need to kill it.

This will cause crashes for now, but will be fixed by the next
commit.
pointer/keyboard: Support more than one focused resource

Sophisticated clients, like those using ClutterGtk, will have more
than one focused resource per client, as both Clutter and GDK will
ask for a wl_pointer / wl_keyboard. Support this naturally using
the same "hack" as Weston: multiple resource lists, where we move
elements from one to the other.