- Modified the static type annotation in the class union spec to create a new test case: AvroClassUnionIO.write should continue to work when the supplied value's static type is a parent type of a member of the union, as is the case when union types arise in any nested structures like records, maps, arrays, etc.
- Added new reflection logic to AvroClassUnionIO.write to address the issue.  A subtype relationship is established using runtime reflection information instead of exclusively relying on static TypeTags.