We need to be able to keep a reference to the action when we
implement async action types so now we can do `action.clone()`
and get a hard reference to it.
We also need to be able to mutate the structure, it is possible to
`get_mut()` on it, get a mutable reference to the structure.
There was a bug in the test where we were using a ref to the wrong
action object in the async signal which is why we didn't detect the
problem.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1586>