libs: vaapiwindow: Refactor into GstObject
This of course also implies refactoring its subclasses.
Note that this gives us several important features:
- We can send signals from a window (such as a "size-changed" signal) to another object. This allows for example the vaapisink to listen to configure signals in wayland.
- By defining GstVaapiWindow as an abstract type, we can prevent someone from instantiating it (and it is clear to contributors as such).
- Rather than defining "helper macros" that blindly cast their
arguments, we can rely on functions such as
g_object_get ()
to fetch properties.
This is a follow-up for #96 (closed)