remove `::ThisType` in all identifier types

follow up of #593 

- remove bad `::ThisType` in all Identifier
- use new trait `Resolve<T>` to get the type which is represented by an alias

**please do not merge before #593**
A synonym type is *a* wrapper type (class) around *another* type.