In XDGShell we send configure requests with a serial number which at
some point in the future will be acknowledged by the client.
The one piece of useful information is the state the client has
acknowledged it is in at the time of a surface commit.
XDGShell code already tracks pending configure requests and when they
are acked, but currently purely by number.
This patch adds tracks the state sent with each configure request,
and therefore what state a client has acked.
End goal is to make maximise/fullscreen effects frame perfect