This improves downloading performance dramatically when cpu bound:
Before, even a high-end cpu from 2013 can't download faster than around 1MB/s.
The bigger read buffer size removes the need for a dedicated BufferedInputStream.
* Fix permission at some places
* Fix access problem for downloaded files with external player
* Store finished Downloads
* Remove binding to DownloadService just to download a file
* Javadoc
* Code improvements