Added type parameter to ItemDataUI
Adjusted to type class based TopComponents

Class `Tc` defined in efa.nb.tc now takes a type parameter with
an `AsTc` type class. This lets us use a type class based approach
when dealing with TopComponents. Once again this demonstrates how
type classes can nicely improve composability.