virtio.lua: selftest() now runs for 1s instead of 10s by default.

Can now be controlled with `selftest({secs=N})`
selftest function refactoring.

selftest.lua is now tiny and only loads modules and calls their
selftest() function.

main.lua takes on the basic initialization tasks that were done in
selftest.lua e.g. making sure C headers are loaded and available.