devmapper fix usage of pool transaction id 

Fixes Issue: #9257

There are multiple issues with current devmapper usage of pool transaction Id. This patch series tries to fix these.

Details of problem and proposed fix are available in Issue: #9257

Thanks
Vivek
The goal was that in a different docker model each container would have a babysitter process that runs inside the container (or partly in it), and this process would mount the container filesystem (so i would never be visible outside the container). This would not affect creation/removal as that would always happen from the daemon. However, it did require splitting up the one single metadata file we used to have into separate ones so that when the daemon creates a new volume it would not affect a separate process accessing an existing volume