Support for @ThriftField-annotated fields that have generic types

Adds support for generically-typed @ThriftFields.

With tests for generic @ThriftStruct classes using all types of extractions (ctor+getters, builder+getters, setters+getters, public fields)