Fix layer shell reset
In the current form any client committing multiple times without attaching a buffer would unset the cached state and trigger an error. It's legal (though weird) to commit multiple times before attaching a buffer. We should only reset the state if we commit an empty buffer after having committed an existing buffer. This brings us in line with XdgShell.