Thin pool improvements

Rebased ontop of @rhvgoyal's changes.  This pull request provides:
1) small udev scanning fix for the case where docker creates the thin-pool
2) new --storage-opt dm.thinpooldev to allow an admin to create/manage the thin-pool that docker uses outside of docker.
I understood what you're suggesting.  I tried that and I got errors that dataUsed and transactionId weren't defined.  Have you compile tested your change?  Maybe I'm mis-remembering the error I hit (but I tried this because @rhvgoyal suggested the same... we even went into the Go Playground to try the same with some test code)