Fix NPE when modpacks in compatible list aren't found

NPE occurred in several places when a mod was listed in the 'compatible'
attribute for a map or texture pack but a modpack by that name did not exist.

Change-Id: I89b00511125d174576aa6303789477e75bf8e28c
Clean up and enhance DownloadUtils

- DownloadUtils can now read from any server, not just creeperrepo.net
- Extracted hardcoded URL creation to helper methods where possible
- Consistently use URL.openStream() to allow protocols other than HTTP (e.g FTP)
- No longer tests a URL before returning it. Use [static]fileExists() for this
- An entry in mirrors without a protocol receives http by default

Change-Id: I472c7f7f4cd118d717397c0b3e910c9e42073336