PARQUET-83 : Hive Query failed if the data type is array<string>

Changed the  Parquet-Avro array definition to the Hive understandable.
Now with this fix Avro schema definition is going to be converted to the following format as below.
```
{ "name" : "action", "type" : [ { "type" : "array", "items" : "string" }, "null" ] }
```
Schema definition after this fix:
```
optional group action {
    repeated group bag {
        optional binary array_element
    }
}
```
I think this was an existing bug, but the way to encode a null value in the array is to start its containing group, not start/end the field, and then end its containing group. Then the containing group will detect that the field, in this case "array_element" was not started and will encode a null in the definition/repetition level pair. The code should do this:

```java
  rc.startField("array", 0);
  for (T elt : array) {
    rc.startGroup();
    if (elt != null) {
      rc.startField("element", 0);
      writeValue(schema.getType(0).asGroupType().getType(0), avroSchema.getElementType(), elt);
      rc.endField("element", 0);
    } // else: endGroup will detect no element was started and encode a null
    rc.endGroup();
  }
  rc.endField("array", 0);
```