gtk: fixup clipboard_by_guest tracking
gtk: fixup clipboard_by_guest tracking

clipboard_by_guest tracking was used more or less for 2 things, to keep track
if the agent has clipboard data ready to send, and to see if we have done a
clipboard_set_with_data on behalf of the guest agent.

This patch splits the tracking of the 2, fixing several issues:
1) spice_display_paste_from_guest would not work if since receiving
   the grab from the agent some other app has copied something to
   the client clipboard.
2) We would do a clipboard_clear unconditionally even if we were
   not the clipboard owner in the client (iow some other app has
   done a clipboard_set_with_data since out last one).

This patch changes the meaning of the clipboard_by_guest boolean to just
track if we've done a clipboard_set_with_data on behalf of the guest
and are the last one to have a done a clipboard_set_with_data (iow we are the
client os' clipboard owner). It adds a checks to clipboard_release to
only call clipboard_clear if we are the current ownerm fixing 1).

This patch uses nclip_targets to keep track of the agent having data
available which we could paste, fixing 2).

elmarco/spice-gtk,SPICE/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,SPICE/spice-gtk,SPICE/spice-gtk,Fantu/spice-gtk,mathslinux/spice-gtk,mathslinux/spice-gtk,Fantu/spice-gtk,fgouget/spice-gtk,flexVDI/spice-gtk,fgouget/spice-gtk,mathslinux/spice-gtk,mathslinux/spice-gtk,dezelin/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,guodong/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,dezelin/spice-gtk,guodong/spice-gtk,Fantu/spice-gtk,elmarco/spice-gtk,elmarco/spice-gtk,freedesktop-unofficial-mirror/spice__spice-gtk,fgouget/spice-gtk,dezelin/spice-gtk,elmarco/spice-gtk,flexVDI/spice-gtk,dezelin/spice-gtk,SPICE/spice-gtk,guodong/spice-gtk,guodong/spice-gtk,Fantu/spice-gtk