kernel -- Import virtio & virtio-block drivers.

virtio-blk provides a paravirtualized storage controller, with one
disk per virtio device.

This driver is based on Tim Bisson's port of FreeBSD's virtio and
virtio-blk devices. Differences from Tim's port:

* Import all FreeBSD updates from 4/16 on.
* Remove indirect descriptor support from virtio device.
* Mark devices as D_MPSAFE; removes mplock around disk routines, they
  are all correctly self-synchronized.
* Implement devstat support.
* Move I/O completion routine to threaded taskqueue.
* Do not hold target spinlock around virtqueue notify.
* Move objcache caches to kmalloc.
Rename vtblk_intr_task to vtblk_complete.
kernel/virtio: Some cleanup (Makefiles and gcc47 warnings).
kernel -- Tie virtio, virtio-blk into build.
Build fixes.
kernel/virtio: Make it compilable into the kernel.

Submitted-by: vsrinivas
Add manual pages for virtio (taken from FreeBSD with modifications).