vsl: move vsl init from blk-mq init_hctx to q->queuedata

Instead of hooking into blk-mq's init_hctx and init_request, place
reference within the blk's queue->queuedata pointer. Update null_blk
accordently.
nvme: hook into vsl

We let the nvme driver hook into the vsl interface. A VSL nvme device
should have its OACS bit set for the device, and NS_FEAT bit for each
namespace for lightnvm to be initialized.

Note that a device is either a full lightnvm device, with all namespaces
being a lightnvm device, or none. This is because we still rely on the
blk-mq queue_rq fn to be overwritten, and therefore only do the
initialization once. This can be changed in a later patch.