[CORE] vmm_devdrv: Implement device reference counting

Its always good to keep track or number of uses of device instance hence
this patch implements reference counting for device instances.

Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] serio: Use newly added bus APIs

This patch updates serio framework to use linux-like bus APIs.

Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] vmm_devdrv: Depricate vmm_classdev and related APIs

As per original unix driver model there is no classdev instead the
regular device instance can be added to a bus instance or can be
part of class of devices.

This patch depricates vmm_classdev and adds dual-role to vmm_device.
Now we can register vmm_device as class device or bus device. This
also simplifies implementation of class devices such as vmm_chardev,
vmm_blockdev, vmm_netport, vmm_netswitch, rtc_device, fb_info, etc.

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