Add type_name() specialization for char

This adds a type_name() specialization for char which is different
than the built-in cl_char type and thus was not covered before.
Remove default type_name_trait::value() implementation

This removes the default type_name_trait::value() function
implementation.

Previously, the default implementation would return a null
pointer leading to run-time errors if a type name was not
provided. Now, a compile-time error will occur if type_name()
is called for an unknown type.