VSCR: Virtual Screen is now pointer

This patch creates the virtual_screen as pointer in the Screen
Initialization (wScreenInit). When the screen is created, the
virtual screen is created too.

This patch includes a new pointer in virtual_screen to the screen,
for this reason I need move the typedefs for virtual_screen and
wScreen in Windowmaker.h. The pointer is set in wScreenInit.

The changes in the other files is only for struct to struct pointer
movement.
VSCR: Remove WScreen in struct dock

This patch removes the dock->screen_ptr and change it for the
pointer to the virtual screen (dock->vscr).

The dock is now referenced in the virtual screen.
VSCR: Remove WScreen in struct framewin

This patch removes the framewin->screen_ptr and change it for the
pointer to the virtual screen (framewin->vscr).

The framewin is now referenced in the virtual screen.
VSCR: Remove WScreen in struct wwindow

This patch removes the wwindow->screen_ptr and change it for the
pointer to the virtual screen (wwindow->vscr).

The wwindow is now referenced in the virtual screen.
VSCR: Remove WScreen in struct wcore

This patch removes the wcore->screen_ptr and change it for the
pointer to the virtual screen (wcore->vscr).

The wcore is now referenced in the virtual screen.
VSCR: usermenu uses virtual_screen

This patch includes the virtual_screen for the usermenu compilation.
VSCR: Remove WScreen in struct SwitchPanel

This patch removes the SwitchPanel->screen_ptr and change it for the
pointer to the virtual screen (SwitchPanel->vscr).

The SwitchPanel is now referenced in the virtual screen.
VSCR: appmenu use only virtual_screen

The appmenu functions use only virtual_screen.
VSCR: Some menu functions without WScreen

This patch changes some menu functions from WScreen to virtual_screen.
Functions are:

/src/menu.h
+void wMenuRestoreState(virtual_screen *vscr);

/src/rootmenu.h
+Bool wRootMenuPerformShortcut(XEvent *event);
+void OpenRootMenu(virtual_screen *vscr, int x, int y, int keyboard);

/src/switchmenu.h
+void UpdateSwitchMenu(virtual_screen *vscr, WWindow *wwin, int action);
+void OpenSwitchMenu(virtual_screen *vscr, int x, int y, int keyboard);

static functions:
+static void executeWheelAction(virtual_screen *vscr, XEvent *event, int action)
+static void executeButtonAction(virtual_screen *vscr, XEvent *event, int action)
+static int restoreMenuRecurs(virtual_screen *vscr, WMPropList *menus, WMenu *menu, const char *path);
+static int restoreMenu(virtual_screen *vscr, WMPropList *menu)
+static int restoreMenuRecurs(virtual_screen *vscr, WMPropList *menus, WMenu *menu, const char *path)
VSCR: wMenuCreate uses virtual_screen

The function wMenuCreate now uses virtual_screen.
VSCR: wMenuUnderPointer uses virtual_screen

This patch includes the wMenuUnderPointer using virtual_screen instead of
WScreen.
VSCR: menu.c static functions without WScreen

This patch changes the WScreen static functions with the virtual_screen
variable.
VSCR: wDockReceiveDNDDrop uses virtual_screen

The function wDockReceiveDNDDrop now uses virtual_screen.
VSCR: dock.c static functions without WScreen

This patch changes the WScreen static functions with the virtual_screen
variable.
VSCR: workspace public functions with virtual_screen

This patch change all public functions to use virtual_screen in workspace.h
VSCR: workspace.c static functions without WScreen

This patch changes the WScreen static functions with the virtual_screen
variable.
VSCR: session public functions with virtual_screen

This patch change all public functions to use virtual_screen in session.h
VSCR: session.c static functions without WScreen

This patch changes the WScreen static functions with the virtual_screen
variable.
VSCR: actions public functions with virtual_screen

This patch change all public functions to use virtual_screen in actions.h
VSCR: appicon public functions with virtual_screen

This patch change all public functions to use virtual_screen in appicon.h