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.
minor compare byte[] type directly.
Merge pull request #356 from rangadi/avoid-thrift-field-value-metadata

Thrift typedef handling: avoid relying on Thrift's FieldValueMetaData