filetransfer: handle requestCancelled during file download
filetransfer: add 'cancelled' callback to sipe_file_transfer

Fired when a transfer is terminated in the middle of data download by
local user or remote party.
filetransfer: allow transfer cancellation by local user

This still doesn't work completely as it should because when we cancel
the transfer, the UI of the sending Lync client reports a general
failure instead of making clear that it was a user action that
terminated the operation, as it does when the recipient is another
Microsoft client.

It seems that cancelling the transfer on the SIP layer is not enough and
we have to do something on the data stream layer as well; there's
however no documentation. We may find out more when we start
implementing outgoing transfers.
filetransfer: wait for BYE request from the sender

If we prematurely hang up the call, the Lync client registers it as
a failure, even though the whole file has been transferred. It seems we
have to wait for a SIP BYE from the sender in order for the transfer to
be treated as successful.