[WIP] Cache downloaded files by default

* Enables a speed up by caching downloaded files by default
* Will use the appropiate cross platform location to store cache files
* Adds a new option, `--no-download-cache` to disable the download cache

This still requires tests.

Fixes #1732.