[CORE] vio: First-cut implementation of virtual display framework

This patch introduces first version of virtual display framework.

The virtual display subsystem has two important entites namely
vmm_vdisplay and vmm_surface.

GUI rendering daemons (VNC daemon or FB daemon or ...) create
vmm_surface instance and add/bind it to a vmm_vdisplay instance.
More than one GUI rendering daemons can add their vmm_surface
instances to a single vmm_vdisplay instance. The GUI rendering
daemons will also use vmm_vdisplay_one_update() API to periodically
update/sync vmm_surface instance with vmm_vdisplay instance.

Display (or framebuffer) emulators create vmm_vdisplay instance
to emulate a virtual display. The display emulator will also use
vmm_vdisplay_surface_xxx() APIs to give hints to vmm_surface
instances about changes in virtual display.

Signed-off-by: Anup Patel <anup@brainfault.org>