Re-implement (explicitly) handling of typedefs as nested name specs: TD::A.

This got lost in 2b6ae0aed / 96a4437c8 where typedefs were handled.
Simplify logic (and thus shorten code).
Fixes error in roottest/root/tree/addresses:
Error in <TStreamerInfo::Build>: Embedded_objects, unknown type: EmbeddedTypedef::Embedded3 m_emb4
TSplitType references name as char*; must not overwite it to store output.

Fixes a valgrind report on roottest/root/tree/addresses/embwrite.C:
==11288==    at 0x4E136D6: TClassEdit::TSplitType::ShortType(std::string&, int) (TClassEdit.cxx:281)
==11288==    by 0x833CA0E: R__DropDefaultArg(std::string&) (TClingCallFunc.cxx:110)