Improve class-level generic type parameters, such that:
- NamespaceId<T> implements Versioned<NamespaceId<T>> or equivalent
- TemporalNamespaceId<T> implements Versioned<TemporalNamespaceId<T>> or equivalent
- BiTemporalNamespaceId<T> implements Versioned<BiTemporalNamespaceId<T>> or equivalent