block, fake_mq_blk: allow for variable number of submit queues

This commit adds to the fake_mq_blk driver a parameter that allows
the user to choose the number of submi queues as the driver is loaded.
If the number of submit queues is not specified, the driver keeps its
current behavior, that is assigning a submit queue to each online
CPU core. In case the chosen number of submit queue is not equal to
the number of online CPUs, the requests' buffer is not filled with
any value.
xen, blkback: shorten name of xenblkd threads when using blk-mq

This commit lets the generic part of the block threads' name be
shorter, so that a suffix keeping the ring number can be added to
it when using the multi-queue API.
xen, blkback: allocate memory for multiple rings only once

Since the number of available submit queues is retrieved very soon,
e.g., before there is any need to queue a request, there is no need
to allocate a dummy ring. Also, re-allocating contiguous memory for
an array of large structures might let the start address of the
memory area to change, therefore provoking unpredictable issues.
This commit lets the memory for the array of rings be allocated
only once.
xen, blkback: short round of cleanup

This commit addresses some small issues with uncorrect use of
debug messages or useless dereferences.
xen, blkback: give different names to rings while binding IRQs

This commit assigns to each ring a different identifier if having
to specify a device name while binding an IRQ. This has no other
purpose than facilitating debugging.
xen, blkback: correctly free temporary variables in connect_ring()

This commit lets temporary variables dynamically allocated in the
connect_ring() function to keep ring-refs and evtchns be correctly
freed after being used.