dev_ns: adopt the framebuffer subsystem
dev_ns: adopt the framebuffer subsystem

    Adds device namespace logic to the framebuffer subsystem.

    Isolate framebuffer state between device namespaces, and multiplex access
    to hardware state between the virtual framebuffers.

    Associate with each device namespace a shadow, virtual 'struct fb_info'
    (vinfo) and a backing buffer, for each registered hardware framebuffer.
    Access from an active (foreground) device namespace is passed-through
    directly to the underlying device. Access from a passive (background)
    device namespace is directed to the virtal fb_info.

    The backing buffer is used for mmap-ed memory in passive namespace, so
    any drawing occurs to the backing buffer instead of to the real driver.
    When the active namespace changes, perform a context-switch and swap
    such mappings: remap memory previously in foreground to the backing
    buffer, and from background to the underlying device. The contents of
    the framebuffer is saved and restored in (from) the bacgkround (active)
    backing buffer, respectively.

    Changelog:
    [16-Aug-13] v1 - initial version