loading-errors: Fix issue with messagebus subscription

As the comment says, sometimes the loading process is interrupted due to
game issues before the corresponding subscription was called.
loading-errors: Ask whether self.ships exists yet
loading-errors: Ask whether self.world exists yet
loading-errors: Try to handle halfway initialized collectors

Attempts to fix #2005 by introducing quite some amount of boilerplate
code. *Please* check whether these changes make sense, and whether we
actually want to introduce code like this.

In any case the collector code seems in dire need of larger refactoring.