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
@alexlarsson 

This is a very good point. So putting a device id in transaction which might already be in use in pool is a problem. This is not going to work.

I think I will have to keep track of used device Ids in user space (say a bit map) and select a device id which is free and not in use and put that device id in transaction.

Do let me know if you have other ideas on how to handle it.