Set the theme opacity on window initialization.

We were only updating the window opactiy based on the
theme when the theme changed; however, this meant that
when the application started it would always be opaque.

We now move the logic to set the window opactiy based on
the theme's background opacity into a dedicated method
that we call both from the theme change KVO handler and
when the window initially opens.
Temporarily make window key on opacity change if needed.

Before, changing the theme in the preferences to a theme
with a semi-transparent background would result in the
semi-transparency painting over a gray background instead
of the actual stuff behind the window until the window
becomes key.

To avoid this, when setting the window opacity, if the window
controller's window isn't key, we make it key temporarily and
then restore the original key window's key status.