Added 'packet' abstraction. Packets are composed of multiple segments
of buffers (iovecs) and some metadata for offloading checksum and
segmentation.

Updated the virtio driver to use packets and the port.echo and
port.spam test cases. The rest needs updating.
canary.lua: Added "canary in a coal mine" memory corruption utility.