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