filetransfer: send downloadFile request after establishing a connection
filetransfer: implement data read callback
filetransfer: send progress notify after we got a whole file
filetransfer: reply to incoming INFOs
appshare: process incoming invite
media: add sipe_media_call->writable_cb

The callback is fired whenever a data stream changes its state between
writable and unwritable.
media: add sipe_backend_media_write()
appshare: implement incoming share
appshare: run xfreerdp
media: move sipe_media_call_private::with to public structure
media: refactor sipe_backend_media_stream

Split sipe_backend_media_stream into common, backend private and Sipe
private structures.
srtp: store our encryption key in sipe_media_stream_private
media: set codecs and candidates only on stream creation

Re-adding the candidates on the re-invite could cause issues such as
going from ready to connected state and restarting the connectivity
checks because the agent thinks new candidates were added even though
nothing changed.
media: remove call session on local decline

Avoids sending excess BYE request which resulted in error response
"481 Call Leg/Transaction Does Not Exist" because the session was
already closed by our previous "603 Decline".
filetransfer: create a media session before FT is accepted

Allows us to handle CANCEL requests from the sender and also the connection now
negotiates already while the user is selecting a folder to put file into,
shortening the period between accepting the transfer and the start of downloading
the data.
filetransfer: make sipe_file_transfer_lync private to sipe-ft-lync.c
media: remove sipe_media_hangup()

Just a wrapper around sipe_backend_media_hangup().
media: call sipe_backend_media_reject() on incoming CANCEL request

More appropriate to use this instead sipe_backend_media_hangup().
media: handle CANCEL request for a Lync file transfer
filetransfer: always store current request ID