Many of the fields in struct bio_integrity_data are only needed for
the default integrity buffer in the block layer, and the variable
sized array at the end of the structure makes it very hard to embed
into caller allocated structures.
Reduce struct bio_integrity_data to the minimal structure needed in
common code, and create containing structures for the payload + bvec
allocation for submitter provided buffers, and the default integrity
code. Stop using mempools for the submitter buffers as they don't sit
below the I/O stack, and instead always use the mempool for automatic
integrity metadata instead of depending on bio_set that is submitter
controlled and thus often doesn't have the mempool initialized.