blkback: batch grant map,unmap calls to increase performance

Rather than map/unmap every page within a request separately,
we use the mapv/unmap API to map them as a block.

Read throughput: before = 180 MiB/sec, after = 350 MiB/sec
Write throughput: before = 180 MiB/sec, after = 500 MiB/sec

(measured with the 'discard' backend using 'dd' in the guest)

Signed-off-by: David Scott <dave.scott@eu.citrix.com>