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.