Fix Avro Read/Write support to work with union-null optional values

AvroWriteSupport currently throws an exception if you use the union-null schema pattern to represent an optional value for a field (even though the Avro -> Parquet schema conversion code handles this fine). This patch fixes the issue so that optional fields are written correctly. Happy to tweak things in order to suit Parquet coding conventions.