x-videooutput: refactor setup_frame_display ()

The creation of a Windows is centralized in the new method create_window(),
avoiding code repetition and more readable.

https://bugzilla.gnome.org/show_bug.cgi?id=682489
common-videooutput: refactor frame_display_change_needed ()

Make more readable the method using local boolean variables representing the
changes in the frames or in the UI window.
common-videooutput: store the extended stream buffer

When a second remote video stream (extended stream) arrives, it is
stored in a new byte array called eframeStore. The dimensions of
the frame are also store, along with a new boolean property that
confirms the existance of an extended stream in the connection.

This patch doesn't modifies the current user experience, but it is
a requirement for the extended video display.
common-videooutput: extended stream needs update

This patch adds the logic to mark when the extended stream is updated, meaning
that a new frame has been stored int the byte array.

The patch doesn't add visible changes in the UI. All remains behind the
curtains.
common-videooutput: add VO_MODE_REMOTE_EXT mode

This patch adds the extended remote video stream enum in the video output
mode.

Also it adds the switch labels where the enum is handled in order to avoid
compiler's complains, but no logic is added in those cases, in other words it
is just the skeleton. In the following commits that logic will be added.
x-videooutput: refactor sync()

Make more readable the method using a local boolean variable that
represents no synchronization demand by any video stream.
x-videooutput: resources for the extended stream

This patch adds the X resources required to display the extended stream in
case the user selects that view.

The resources are a XWindow and a Display instances.

The patch contains the logic to handle these two new instances: construction,
destruction, and also receives the frame from the byte array and the display
synchronization.

Since there is no a way in the user interface for enabling the extended stream
view, this patch doesn't modify the user experience.

TODO: add this bits for the dx-videooutput. Since I don't have any experience,
nor access to DirectX, I prefer avoid its modification.
common-videooutput: extended stream in frame info

This patch adds a boolean variable (ext_stream_active). It tells if there is
an extended remote video stream in the connection. It is stored in the frame
info (FrameInfo) structure.

FrameInfo is the structure that is going to be used for each frame that
arrives. So if will tell to the user interface if connection contains an
extended video.

The patch specifies the value of this new attribute for current_frame and
last_frame instances of FrameInfo.
videoutput: new parameter device_opened() signal

This patch is traversal to all the videoouput subsystem.

It add a new parameter to the on_device_opened() signal. This new parameter
indicates if there is an extended stream in the connection.

With it, the UI can enable the option to display the extended stream in the
video widget.
common-videooutput: display extended stream

This patch contains the logic when the extended remote video stream changes
its size, hence the UI window should be adjusted.

Also contains the case that if the stream adds or removes the extended stream,
the UI setup should be readjusted too.

Finally this patch handles the frame display of the extended remote stream if
the UI requests it.

No UI changes yet though.
ui: add the extended video option

With this patch the user can choose to display the "extended video" through
the view menu.

The menu option is only enabled when the on_videoutput_device_opened_cb()
callback has the extended stream (ext_stream) as true.

When the opened video output device doesn't contain an extended stream, and
the view is set on that stream, the configuration is reset to the local view.

Also, the validation of the values for the key
/apps/ekiga/general/user_interface/video_display/video_view is more generic,
using the enum symbols, rather than the numbers.