Refactor module interaction

Make MediaBrowser a ModuleObserver to get notified on shader refresh.
Move ModuleObserver declaration to imodule.h until its phased out
Simplify RefreshShaders algorithm.
Extend GlobalMainframe interface for acquisition of a scoped ScreenUpdateBlocker object.
Move refresh shaders command to MaterialManager