file-xfer: call user callback once per operation
file-xfer: call user callback once per operation

SpiceFileTransferTask has a callback to be called when operation
ended. Til this patch, we were setting the user callback which means
that in multiple file-transfers, we were calling the user callback
several times.

Following the same logic pointed from 113093dd00a1cf10f6d3c3589b7 this
is a SpiceMainChannel operation and it should only call the user
callback when this operation is over (FileTransferOperation now).

Highlights:
* Now using GTask to set user callback and callback_data
* Handling error on FileTransferOperation:
- It is considered an error if no file was successfully transferred due
  cancellations or any other kind of error;
- If any file failed due any error, we will consider the operation a
  failure even if other files succeed.

Note also that SpiceFileTransferTask now does not have a callback and
callback_data. The xfer_tasks has ended after its "finish" signal is
emitted.

Acked-by: Jonathon Jongsma <c7254805a17bd5c41e24c3a278fcbf3afcdfb0fa@redhat.com>

flexVDI/spice-gtk,fgouget/spice-gtk,fgouget/spice-gtk,fgouget/spice-gtk,flexVDI/spice-gtk