Use the leftover space to carve 'next' field that enables linking of
io_uring_cmd structs. Also introduce a list head and few helpers.
This is in preparation to support nvme-mulitpath, allowing multiple
uring passthrough commands to be queued.
It's not clear to me why we need linking at that level?
I think the attempt is to allow something like blk_steal_bios that
nvme leverages for io_uring_cmd(s).
nvme failover steals all the bios from requests that fail (and should
failover) and puts them on a requeue list, and then schedules
a work that takes these bios one-by-one and submits them on a different
bottom namespace (see nvme_failover_req/nvme_requeue_work).