Resolve #3787 by allowing GLWidgets to have their own context.

The globally shared context can be in a bad state leaving the
TexturePreviewCombo unable to draw textures.
Better MediaBrowser update handling.