data_offer: Use wl_resource_for_each

Accessing the resource link directly is deprecated.
Style
data: Set empty offer destructor after source is destroyed

This way we don't attempt to access the freed source link when removing
the offer link.
Rename input_focus -> input to add other common input stuff
input: Use common press structure
window: Rename begin_interactive_* -> begin_*
pointer: Pass button press structure to pointer handler
Properly support binding key releases

Now, the keyboard keeps track of a single array of keys pressed, similar
to th pointer, and the client handler keeps track of an array of keys to
be sent on enter.

This way, we can keep track of the binding used when a key is invoked,
in order to ensure that the same binding is invoked when the key is
released.
Add button bindings
framebuffer_plane: Don't try a modeset on initialization