No longer teardown/rebuild gstreamer pipeline on a seek. Instead we keep the stream up and maintain an offset between the gstreamer pipeline and the actual video timestamps. This allows
much faster seek times.

Through the testing of various video formats, end timestamps from the server have been proven to be less reliable than start timestamps. Have especially noticed this when playing back WMV1 and WMV2 files. So, we modify the seek detection code for tsmf gstreamer to do comparisons on the start time.

Detect cases where timestamps should not be used, based on flags from the server(relative and no timestamp) flags.

Change the call from "gst_x_overlay_set_xwindow_id" to "gst_x_overlay_set_window_handle", since the former has been deprecated.

Improve the gstreamer clean up function - only do unrefs when needed, once the various elements are linked to the pipe, then this should not be done anymore locally. So, we only do unrefs when something bad has happened prior to pipe creation.

Change the use of temp files for audio/video stream syncing to global variables. This solves some issues when trying to run mutiple xfreerdp MMR clients concurrently.

Create sync flag for the video/audio streams so that they know they are synced being synced to another audio/video stream respectively. This way we only run the sync logic if necessary.

Be smarter about when to map/unmap the gstreamer MMR window. For instance, pausing video no longer results in video disappearing.

Provide more tuning of the elements of the gstreamer pipeline, for increased performance when running synced especially.