This change converts all existing network backends to use the
new, hotplug-friendly file descriptor initialization scheme.
Parts of the backend initialization routines that deal with files
have been factored out and moved to libbhyve and made available
to other hotpluggable device using the pci_init_fds routines.
The backend initialization routines now expect their required file
descriptors to be present in the nvlist object.
The configuration parsing routines were also moved and made available
via libbhyve's pci_parse_config routine.
This is a prerequisite for making the e1000 and virtio-net devices
hotpluggable.
While we're here, add additional failure messages in the backend
initialization routines.