Thrift typedef handling. Avoid relying on Thrift's FieldValueMetaData


We used to rely on FieldValueMetaData (to provide info like generic arguments, thrift sturct types etc).

It is not very reliable or consistent.

We had already switched to using generics to find types in like list<string> and map<…>.
We were still left with bugs related to FieldValueMetaData for typedef.

This completely removes use of FieldValueMetaData in TStructDescriptor.