pad: Keep IDLE probe hook alive during immediate callback

When the probe returns GST_PAD_PROBE_REMOVE and gets called concurrently
from the streaming thread while we're in the callback here, the hook has
already been destroyed by the time we've reacquired the object lock.
Consequently, cleanup_hook gets passed an invalid pointer.

Keep another reference to the hook alive to avoid this situation.

Part-of: <gstreamer/gstreamer!874>
35 jobs for !874 with backport-mr-873-into-1.18-idle-hook-ref in 50 minutes and 7 seconds (queued for 16 seconds)
merge request