use generics for RendererHint, simplify class hierarchy there, and add support for rendering based on class type, used for Duration and HostAndPort, and for Entity instances to show the name of the entity