[CORE] vmm_devdrv: Add API to find class device using match function

Linux driver frameworks such as SPI, require API to find class device
using some match function hence this patch.

Signed-off-by: Jimmy Durand Wesolowski <jimmy.durand-wesolowski@openwide.fr>
Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] Add VMM_EREMOTEIO and VMM_EINPROGRESS error codes

Signed-off-by: Jimmy Durand Wesolowski <jimmy.durand-wesolowski@openwide.fr>
Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] Added SPI driver framework

This patch adds SPI device driver framework ported from Linux kernel sources.

Signed-off-by: Jimmy Durand Wesolowski <jimmy.durand-wesolowski@openwide.fr>
Signed-off-by: Anup Patel <anup@brainfault.org>
[CORE] vmm_delay: Add new API vmm_ndelay

This patch adds new API vmm_ndelay() for soft-delay in-terms
of nanoseconds.

Signed-off-by: Jimmy Durand Wesolowski <jimmy.durand-wesolowski@openwide.fr>
Signed-off-by: Anup Patel <anup@brainfault.org>
[DRIVERS] i.MX and GPIO bitbanging SPI drivers

This patch adds i.MX SPI driver and GPI bitbanging SPI driver to
Xvisor ported from Linux kernel sources.

Signed-off-by: Jimmy Durand Wesolowski <jimmy.durand-wesolowski@openwide.fr>
Signed-off-by: Anup Patel <anup@brainfault.org>