core/pointer: Keep track of the focus serial

The focus serial is needed to correctly send a cursor so it is useful
to be able to verify that this is working correctly.
core: Add a wrapper for the keyboard

This adds a wrapper for a wl_keyboard in a similar way to the pointer
wrapper. It keeps track of the keys that are pressed so that they can
be quickly verified. wayland-fits now depends on libxkbcommon so that
the keyboard wrapper can pass the keymap to it and get the modifier
indices.
core: Add a test for multiple pointer and keyboard resources

This adds a test which creates multiple pointer and keyboard resources
for the same client and verifies that they all receive events. It also
tests various combiniations of pointer and keyboard focus and ensures
that for example a keyboard created while the surface already has
focus will correctly get updated about the state.