Support immutable strings in AvroIndexedRecordConverter

If consumers are loading Parquet records into an immutable structure
like an Apache Spark RDD, being able to configure string reuse in
AvroIndexedRecordConverter can drastically reduce the overall memory
footprint of strings.

NOTE: This isn't meant to be a merge-able PR (yet). I wanted to use this PR as a way to discuss: (1) if this is a reasonable approach and (2) to learn if PrimitiveConverter's need to be thread-safe as I'm currently using a ConcurrentHashMap. If there's agree that this would be worthwhile, I'll create a JIRA and write some unit tests.