First batch of file transfer implementation

WARNING: Incoming file transfer requests are automatically accepted and
saved to '~/neuland-download-<file name>' for now. There are no safety
checks whether a file with the same name already exists; if such a file
exists, the new content will simply be appended, and the file will be
garbage.

Outgoing transfers can be added by clicking the 'attachment' button in
the chat window's header bar. There isn't any feedback about the
transfer's progress yet (except some messages to stdout).

Not yet implemented:
* Pausing, killing and resuming of transfers
* UI for transfers
tox: Some work on file transfer

* Kill the file transfer if tox_file_send_data() fails
  MAX_SEND_DATA_ATTEMPTS (currently defined as 100) times.

* Always add the idle function
  neuland_tox_leaving_send_file_transfer_idle to the main loop when
  leaving the file sending thread.

* Ref the file_transfer before starting the file transfer thread and
  unref it in the idle function when leaving the thread, to ensure the
  file transfer stays alive as long as the file transfer thread is
  running.
file transfer: Use "transferred-size" property

When transferring a file, set the "transferred-size" property of the
file transfer every thousandth part of the total file size. The
neuland_tox_leaving_send_file_transfer_idle function became more
versatile to handle this as well, and thus has been renamed to
neuland_tox_update_file_transfer_idle().