Make frame callbacks part of the pending commit state

Commit to frame callbacks only on commit.
Check for null surfaceBuffer

If client detaches the buffer and commits, check for
null surfaceBuffers.
Fix qt key extension interface name
Do not mess with paint enabled on surface mapped/unmapped

If QWaylandSurfaceItem is used as a texture provider only,
setting paint enabled can cause item itself become visible.
Immediately send frame callback on detach

Might not be according to wayland protocol but
better to send the callback than not.
Commit on detach

On some platforms mBuffer is always zero. Expect setVisible(true) to
result in paint, and explicitly detach and commit on setVisible(false)
Merge pull request #16 from mikkoharju/master

Surface visibility changes
Merge pull request #17 from Vesuri/master

Don't crash on getting an output for a client when there is no resource for the client