This patch does the following:
- Makes sure the close() signal is actually emitted when close() is called.
- Documents the FileJob functions more accurately, and ensures the file slave acts similarly to the two other slaves that implement these functions (smb/sftp).
- Fixes an issue when purposefully reading 0 bytes.
- Fixes a bug where finished() is called after error().