stbt: add a method `process_all_frames` available for the tests

This method forces the pipeline to process all the frames for the duration
of the calls.

This is meant to be used when precision is required.

In order to get all the frames processed and preventing any of them from
being discarded, the attribute queue.props.leaky from the pipeline need to
be set to zero.

In order to prevent the pipeline's buffer from being filled, and therefore,
getting some frames dropped, the next attrbiutes need to be changed:
1) queue.props.max_size_buffers = 0
2) queue.props.max_size_time = 0
3) queue.props.max_size_bytes = 0

Two new methods, Display::save_config() and
Display::restore_last_saved_config() have been added so as to restore the
previous values of these attributes.

When leaving the context process_all_frames, it is necessary to catch up
with the live stream, therefore the code after its yield statement uses a
new method Display::catch_up_live_stream(), which creates again the
source_bin and sink_bin and links them in the pipeline.

Example usage code:

with stbt.process_all_frames():
    # do your measurements here.
# this line runs in normal (frame-dropping) mode.