appsink: Unblock pull-preroll on GAP event

... and add support for preroll sample with buffer list.

From application point of view, it's tricky to know that whether
pipeline is prerolled by buffer/buffer-list or by GAP event.
Then, if pipeline is prerolled by GAP event but pipeline's state
is staying in PAUSED, pull-preroll would be blocked forever
which doesn't seem to very desired behavior.
37 jobs for !1238 with sink-preroll-object in 1 minute and 45 seconds (queued for 4 seconds)
latest merge request