Adwaita: osd rationalization and tweakings

Removed bright translucent outer border for "top level" osd widgets,
insensitive osd entry styled, more meaningfull color variables and
some code rationalization.
GdkGLContext: Change the way we track the current context

To properly support multithreaded use we use a global GPrivate
to track the current context. Since we also don't need to track
the current context on the display we move gdk_display_destroy_gl_context
to GdkGLContext::discard.
GdkGLContext: Track shared context

This allows us to read it back, but primarily it ensures
the shared context wrapper stays alive as long as the context.
GdkWindow: destroy paint gl context on destroy
GtkGLArea: Always destroy context on unrealize

We had some code that tried to reuse the context over realize, but
that doesn't work as we need to share with the possibly new
paint context of the re-realized window.
Remove GdkGLContext::visual

This is not really needed. The gl context is totally tied to the
window it is created from by virtue of sharing the context with the
paint context of that window and that context always has the visual
of the window (which we already can get).

Also, all user visible contexts are essentially offscreen contexts, so
a visual doesn't make sense for them. They only use FBOs which have
whatever format that the users sets up.
Clarify docs for gdk_cairo_draw_from_gl
Add GdkGLContext::profile