Remove VFIO support to simplify memory and device access

VFIO is a Linux kernel interface for controlling the IOMMU hardware.
https://www.kernel.org/doc/Documentation/vfio.txt

VFIO is a valuable feature and we do want to support it over the long
term. However, right now we do not completely use/trust/understand it,
and by removing it we can simplify the code in several ways:

- Remove C code that uses a complex Linux API.
- Remove Linux's vfio.h that we imported to work around build problems.
- Eliminate code duplication between pci.lua, vfio.lua, and bus.lua.
- Eliminate complex hooks/indirections in memory.lua.
- Eliminate the bus scan from app.lua (which slowed down startup).
- buffer.physical is now known to always be an actual physical address.

So let us re-introduce this feature in the future when we need it
enough to justify its complexity, and when we have the time to work
through all of its quirks and implications.

OBTW: also removed the memory.use_hugetlb option. Now snabbswitch
always uses HugeTLB. Again, we can reintroduce this when we need it.