file transfer: Add UI , improve internals

We now show a transfer widget for each transfer at the top of the chat
widget. Transfers can be paused/resumed/killed using the control buttons
in this widget.