gstreamer: Fix PromiseFuture implementation
We can't return a plain reference to something stored inside the future
as that would go out of scope after await
. Instead return a struct
that wraps the gst::Promise
, derefs to a structure and keeps the
promise alive as long as needed.