tests: Add methods to set up a kernel NVMe target-based testing device
tests: Add methods to set up a kernel NVMe target-based testing device

Similar to iSCSI devices leveraging kernel LIO target and targetcli tools
this is a NVMe counterpart. The kernel NVMe target interfaced by nvmetcli tools
leveraging kernel configfs point provides a 'loop' target that takes existing
block device and provides a simple NVMe translation layer. The userspace
nvme-cli tool is then used as an initiator to set up a local nvme block device
nodes.

The current limitation of the test infrastructure is only one namespace
being provided. Subject to further improvements.

Another limitation of the kernel NVMe target is the need of a real block device
in contrast to a 'file' backend available in the LIO target. Thus a file-backed
loop device is needed to be set up first, potentially leading to duplicate
identifiers in the system.

rhinstaller/libblockdev,rhinstaller/libblockdev,rhinstaller/libblockdev