Topo enumeration of NVMe devices

Review Request #2483 — Created Jan. 9, 2020 and submitted — Latest diff uploaded

11958, 11959

These changes extend the disk and pcibus topo plugins to support enumerating NVMe devices in the topo tree. It also provides a platform-specific topo map for the Supermicro SYS-2028U-E1CNRT+ server platform.

Testing was performed on a Supermicro SYS-2028U-E1CNRT+ with a variety of u.2. NVMe devices and an Intel PCIe Add-in card NVMe device. Testing was also performed on a desktop system with an M.2 NVMe device. I verified that the NVMe devices were properly enumerated. The code changes were fully exercised with UMEM_DEBUG enabled and checks were run to verify no memory leaks or other bad memory juju are being introduced by these changes. The code is pbchk-clean and builds cleanly.