drivers, fake_mq_blk: fix request filling and add forgotten fields

This commit solves some issues of the fake_mq block I/O driver:
. it fills the request's data buffer correctly with a value depending
  on the CPU core it was issued from;
. it adds some forgotten fields and handlers to blk_mq-related
  data structures, therefore avoiding crashes due to incorrect
  allocation of request commands.

The driver can be tested with the test_fake_mq.c program, available
in xen-blk-mq's benchmark suite:
https://github.com/ariava/xen-blk-mq-benchmark.git.
After the driver has been loaded, the /dev directory is populated
with one fake block device. Any read request from the block device
will return the number of the CPU core it has been issued from.
The test_fake_mq program prints to stdout the content of 1-byte read
requests from the fake device. Executing it normally, e.g.:
sudo ./test_fake_mq
will print out a number in the range [0,nr_cpu_ids), while executing
it by forcing its affinity, e.g.:
sudo taskset -c 1 ./test_fake_mq
will print out the argument to the -c option of taskset (in this
example, "1").