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.
```go
	if devices.thinPoolDevice != "" && oldInfo == nil {
		if _, transactionId, dataUsed, _, _, _, err := devices.poolStatus(); 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)
		}
	}
```