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