Virtual Screen 

This patch includes a lot of changes to implement a virtual screen.

This is the first step to split the relationship between the physical screen and the virtual screen (icons, background, menus,...)