Fixed "database disk image is malformed" error when sending a large number of books to idevices.

Fixed _afc_file_read to continuing reading bytes until all bytes are
read up to the requested file length; the first read only returns the
first 0x400000 bytes, so any files larger than that were not being fully
read. The missing bytes were initialised to null in the target file,
resulting in a corrupt file (the local copy of the Marvin sqlite
database).
Bug 1392052: saved search with names containing backslashes don't work.
Ensure _afc_file_read terminates if 0 bytes read.
Merge branch 'master' of https://github.com/cbhaley/calibre

Fixes #1392052 [Saved search not working](https://bugs.launchpad.net/calibre/+bug/1392052)
Merge branch 'master' of https://github.com/Polyfun/calibre