Added async map download with proper error handling

As discussed in #3275 this will fix #4324 and look better. We also now give instructions on how this magic works instead of crashing with KeyNotFound when the map has not yet been uploaded to http://resource.openra.net.

Good test cases are
* 185.24.221.192:1239 `ra@bleed` (map not present)
* 178.63.32.174:1220 `ra@git-1079f37` (available custom map)
* 178.63.32.174:1321 `cnc@git-1079f37` (available custom map)