NVMe: Convert to blk-mq

This converts the current NVMe driver to utilize the blk-mq layer.

Contributions in this patch from:

  Sam Bradshaw <sbradshaw@micron.com>
  Jens Axboe <axboe@kernel.dk>
  Keith Busch <keith.busch@intel.com>
  Christoph Hellwig <hch@infradead.org>
  Robert Nelson <rlnelson@google.com>

Acked-by: <Keith Busch <keith.busch@intel.com>
Acked-by: <Jens Axboe <axboe@fb.com>
NVMe: Add irq affinity hint back

The affinity hint got lost when previous reverted patches were
removed.
NVMe: Revert test changes for reset_notify
NVMe: rename QUEUE_FLAG_VIRT_HOLE

QUEUE_FLAG_VIRT_HOLE was temponary and was replaced with
QUEUE_FLAG_SG_GAPS.