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.
videoutput: new parameter size_changed() signal

This patch is traversal to all the videoouput subsystem.

It add a new parameter to the size_changed() signal. This new parameter
indicates the video output mode of the current frame that changed its size.

With this new parameter the UI would know which window resize in case the
output is other window.
videooutput: other instance of DisplayInfo

Add another instance of DisplayInfo for the new window which will show the
extended video stream.

And its getters and setters in the class hierarchy.
ui: add remote video window

This remote video widget will display the extended remote video stream.

For this iteration, the window doesn't add any other facility.
ui: instantiate the extended video window

When an extended video stream is opened, a extended video widget is created
and displayed.
x-videoutput: select display info with frame mode

In the method setup_frame_display() the local display info is choose with the
current frame mode, hence the corresponded display window is configured.
x-videooutput: remove zoom in extended video stream
common-videooutput: first new streams, size change later

When GMVideoOutputManager::redraw (), if its more important to knew if there
is new streams in the connection, so we can allocate the required resources to
process it. Afterwards we could process the frame size changes.
common-videoutput: fix code style
x-videoutput: fix code style
common-videoutput: get display with stream type

Get the display info structure according to the stream type, since they are
different widgets.
x-videoutput: close only current display

Added the close_display () method. It will only close the display associated
with a videooupt mode (remote/local/pip vs remote extended).

This is used when setup_frame_display() we must close only the current
display, avoiding the flickering when displaying both streams simultaneously.
videooutput: keep position of remote video display

Add the x and y position of the remote stream display, keeping it separated
of the main video display.
gmwindow: avoid critical message

As the remote video display doesn't store its information in gconf, we don't
have a gconf key for it. So, instead a g_return_if_fail(), we put a simple
if (), avoiding the critical message.