MarketController now observes when it's loaded

two design patterns for the price of only one commit!
ObserverRegistry is a composite of Observers, which is notified by
ScreensController whenever the ControlledScreen changes (and probably by
more things eventually).
Observer gets notifyChange called whenever something of the type it's
watching for changes in has changed. Right now, it's implemented by
ObserverRegistry (which acts like a single Observer, then dispatches)
and MarketController (where it's used to update the state of the market
view e.g. if the planet changes)