Refactor various ebook download functions\n\nThe functions are now easily testable individually. An extra HTTP connection\nwhen downloading a file from a URL directly is avoided. A workaround for\nProject Gutenberg refusing to serve ebook files to browsers is added.\nFixes #1354735 [When using "Get Books," all downloaded Project Gutenberg ePub books (and only Pr. Gut. books) are .2 MB, that is, they show up in my Calibre library, but they are empty. This wasn't so before as I have downloaded many Pr. Gut. ePub books in the past using “Get Books.” I have updated Calibre versions twice since this problem began. ePub downloads through other providers (eg., Feedbooks, Legimi, MobileRead) using “Get Books” functions correctly. Mac OS 10.7.5, Calibre 1.48.0.](https://bugs.launchpad.net/calibre/+bug/1354735)