[perstent-data] Simplify dm_bm_flush_and_unlock() -> dm_bm_flush()

Now you have to do the unlock yourself.
[persistent-data] change the semantics of dm_tm_commit().

Now it assumes all data has been flushed apart from the single
superblock passed in.
[dm-cache] Switch to new dm_bm_flush() interface.
[dm-thin, dm-cache, dm-era] Take care to copy the space map roots before locking the superblock.

Paranoia patch.  In theory this operation can fail, but in practise it
never does because we're careful to check what size buffer is needed.