Entity.Tag() now returns names.Tag

Wow. This massive changeset is all just to redefine
```
type Entity interface {                                                                                                                                                  
        Tag() string                                                                                                                                                 
}
```
to 
```
type Entity interface {                                                                                                                                                  
        Tag() names.Tag                                                                                                                                                 
}
```
The resulting explosion of `.String()` calls is worse than it looks and will go away in the next PR.