registry: add UnitHash to published UnitStates

This introduces a new field in UnitStates containing the string representing
the Hash of the associated Unit, to disambiguate between UnitStates published
with the same name but actually representing different Units.
This structure has always been ugly to me. This is more readable:

```
us := unit.UnitState{
 		LoadState:   info["LoadState"].(string),
 		ActiveState: info["ActiveState"].(string),
 		SubState:    info["SubState"].(string),
}
return &us, nil
```