Copied from Firecracker 17a9089d for the queue implementation and from crosvm 107edb3e for the device Trait. The device trait has some PCI specific methods hence its crosvm origin. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>