mp_image: refactor colorspace guessing/fallback

This actually handles XYZ too.
big braindead vsfilter compat hack

This mangles the colors by xy-vsfilter does. It's an attempt to be
fully compliant to the braindead abomination that is the recently
introduced "YCbCr Matrix" ASS header. This means the colors in an
ASS script will depend on the video colorspace. We don't follow it
completely though: if the ASS header implies YCbCr, and the video is
RGB, we do not mess with the colors. (Actually we would have to, but
this is a typical case where blatantly and intentionally breaking
conformance is the right thing to do.)

This is disabled by default, and can be enabled with the
--ass-vsfilter-video-compat option. (The name implies that it enables
compat stuff that makes rendering dependent on the video.)
sd_ass: scale blur by original video size if requested