`process_all_frames` has a racing condition when it is used as follows:

    with process_all_frames():
        wait_for_match('videotestsrc-timed-frame.png')
        wait_for_match('videotestsrc-timed-frame-2.png')
        wait_for_match('videotestsrc-timed-frame-3.png')

The reason for this is the fact that what `process_all_frames` does is
prevent the frames from being dropped but it doesn't ensure that betwen two
`wait_for_match` calls, the frames that fo through the pipeline are going
to be kept in the buffer.

This commit adds a new property to `TemplateMatch` called single_frame,
that gives it the ability to freeze (single_frame = WAIT) and wait until
the next frame is requested (single_frame = SINGLE_FRAME).