CRUNCH-314: Separate shuffle and bundle AvroMode configuration.

This adds an integration test, AvroModeIT, that catches the behavior
described in CRUNCH-314. The solution is to separate the
AvroMode#configure methods into configure, for sources and targets, and
configureShuffle, for SafeAvroSerialization and AvroGroupedTableType.

AvroDeepCopier and Avros also used a configure method to set the reflect
factory, which has been updated to the more specific configureFactory.

This also changes the default AvroMode to REFLECT because it is the most
general.

Signed-off-by: Josh Wills <jwills@apache.org>