w32_common: get screen dimensions from an HMONITOR

This simplifies vo_w32_update_screen_info a bit. Except when using
--fs-screen=all, it will always get an HMONITOR and call GetMonitorInfo
to determine its dimensions. This will make it easier to get a colour
profile from the HMONITOR later on.

Also, improve behaviour when the user specifies a screen that doesn't
exist. Instead of returning the dimensions of the last enumerated
screen, it dumps an error message and uses the default screen.
gl_lcms: Fix crash when profile is unset
w32_common: automatically select colour profile

Automatically select the colour profile based on the display where mpv
is initalized and automatically change the profile when mpv is moved to
a different display. This commit is pretty much the same as b0ee933, but
for Windows.

Unlike the Cocoa implementation, this doesn't automatically change the
profile when the user's settings change. Since the previous profile is
cached when a new DC is created on the same display, mpv will have to be
restarted, or at least moved to a secondary display and back to use the
new profile.