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.
Oh yes....
```go
    _, transactionId, dataUsed, _, _, _, err := devices.poolStatus()
       if err != nil {
            return err
        }
        if dataUsed != 0 {
            return fmt.Errorf("Unable to take ownership of thin-pool (%s) that already has used data blocks",
                devices.thinPoolDevice)
        }
        if transactionId != 0 {
            return fmt.Errorf("Unable to take ownership of thin-pool (%s) with non-zero transaction Id",
                devices.thinPoolDevice)
        }
    }