[dm core] Fluff.  Simplify an if statement in dm_table_set_restrictions()
[dm-cache] Writethrough mode wasn't resetting bio fields before reusing

The writethrough mode reuses the same bio to write to both the origin
and cache device.  It was recording the bi_sector and restoring this,
but this was inadequate; lower level drivers can change all sorts of
bio fields.

This patch adds a struct dm_bio_details field, and uses
dm_bio_record() and dm_bio_restore() to ensure the bio is restored
before reissuing to the cache device.

Issue discovered by Darrick Wong.