VSCR: Definition of virtual_screen

This patch includes the definition for virtual_screen. This virtual
screen will include all the related stuff about the screen, but the
physical screen is not used.

I created this new struct because the rigth way to do the things is:

1. One X11 ServerLayout could have one or more Screens
2. One Screen could have one or more Workspaces.
3. Clip, Dock, Menus,... belongs to the Screen, not to the workspace.

I am working now in a complex X11 environment, with multiple screens
and without Xinerama. Configuration below.

I will create a set of patches to solve the problems with the secondary
screen. Now only the first screen contains items. Secondary is mostly empty.

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" 1920 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Acer V223HQ"
    HorizSync       31.0 - 84.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Acer AL1715"
    HorizSync       30.0 - 83.0
    VertRefresh     55.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTS 450"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection
Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTS 450"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "DVI-I-0: nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "CRT-1"
    Option         "metamodes" "DVI-I-1: nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
VSCR: Move global_icon_count and last_dock to vscr

This patch moves the variables global_icon_count and last_dock from the
global struct to the virtual screen struct. Now we have different counter
and last_dock pointers in the screens.
VSCR: Move root_menu to vscr

This patch moves the root menu to vscr. The root menu is the same
for all workspaces, but the menu is used to launch the applications
in different screens.

TODO: In next versions, after the VSCR changes, we should check if
we can use the same menu.
VSCR: Move switch_menu to vscr

This patch moves the switch menu to vscr. The switch menu is different between
screens, because window lists are different too.
VSCR: Move icon_menu to vscr

This patch moves the icon menu to vscr. The icon menu is different between
screens, because the workspace list is different.

TODO: In next versions, after the VSCR changes, we should check if
we can use the same menu.
VSCR: Move window_menu to vscr

This patch moves the icon menu to vscr. The icon menu is different between
screens, because the workspace list is different.

TODO: In next versions, after the VSCR changes, we should check if
we can use the same menu.