Expose the framesync options on overlay_vulkan.

The filter already drives framesync internally (ff_framesync_init_dualinput,
ff_framesync_configure, ff_framesync_activate) but declares its AVClass with
AVFILTER_DEFINE_CLASS, so eof_action/shortest/repeatlast are never advertised
and framesync's option defaults are never initialised. Every other overlay_*
filter (overlay, overlay_vaapi, overlay_opencl, overlay_cuda) uses
FRAMESYNC_DEFINE_CLASS together with a .preinit callback.

Beyond the missing functionality, Jellyfin probes overlay_vulkan for the
"Action to take when encountering EOF from secondary input" option to decide
whether the Vulkan filter chain is usable. Without it IsVulkanFullSupported()
returns false, Jellyfin falls back to a VAAPI pipeline with no HDR tone
mapping, and HDR content is transcoded to SDR untonemapped (washed out).

--- libavfilter/vf_overlay_vulkan.c.orig
+++ libavfilter/vf_overlay_vulkan.c
@@ -231,7 +231,7 @@
     { NULL },
 };
 
-AVFILTER_DEFINE_CLASS(overlay_vulkan);
+FRAMESYNC_DEFINE_CLASS(overlay_vulkan, OverlayVulkanContext, fs);
 
 static const AVFilterPad overlay_vulkan_inputs[] = {
     {
@@ -265,6 +265,7 @@
     .init           = &overlay_vulkan_init,
     .uninit         = &overlay_vulkan_uninit,
     .activate       = &overlay_vulkan_activate,
+    .preinit        = overlay_vulkan_framesync_preinit,
     FILTER_INPUTS(overlay_vulkan_inputs),
     FILTER_OUTPUTS(overlay_vulkan_outputs),
     FILTER_SINGLE_PIXFMT(AV_PIX_FMT_VULKAN),
