Rather than waiting for the OS list to load, when the app starts, the
loads them in the background, and only waits if we reach the list of
available downloads without them loaded yet. In this case, we use a
FutureBuilder to display a loading spinner until the list is ready.
This fixes the loading of OS icons so they are correctly replaced with a
generic computer if no matching icon is found.
It also centralises the loading process so it happens once during app
initialisation, and displays the corresponding icon next to each VM on
the manager screen.