Import recent virtio changes from OpenBSD

This pull request imports recent virtio changes, fixing memory synchronization issues.

We probably won't want to use virtio_membar_* macros which use the membar API. I have replaced them with C11 atomics. I have left it unsquashed so one can have a look and compare, to see that I have used the correct atomics.