virtio: Add add_buf_wait and wakeup_waiter

The add_buf_wait will sleep if there is not enough buf in the avail
ring.

When there is more space available, it can be woke up by wakeup_waiter.

Signed-off-by: Asias He <asias@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
virtio-blk: Use add_buf_wait and wakeup_waiter

Signed-off-by: Asias He <asias@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
virtio-scsi: Use add_buf_wait and wakeup_waiter

Signed-off-by: Asias He <asias@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>