FileDownloader Improved.

- Better threading logic
- Replaced Pair<Url, File> with a proper class that also counts retries
- Can retry when download fails