virtio net device: get_transmit_buffers_from_vm()

Freelist implements LIFO queue. This means that when the buffers are added
from the vm, they'll be used in reverse order (remove pops the last one).

This patch uses a different algorithm to add buffers so they can be popped
in the ascending order. This is done for both Rx and Tx.

Signed-off-by: Nikolay Nikolaev <n.nikolaev@virtualopensystems.com>
virtio net device: reconnection

In order to reconnect we need to restore txavail and rxavail.
We restore them from the used.idx of each vring.

Signed-off-by: Nikolay Nikolaev <n.nikolaev@virtualopensystems.com>
Merge pull request #187 from virtualopensystems/reconnect

vhost-user reconnect support (limited)