Description
A long time ago, I made a change that used random names for the custom Avro schemas that Crunch generates for processing tuple types (pairs, trips, etc.). I recently hit a use case where that randomization burned me when I was re-running some pipelines over checkpointed data that I serialized using Crunch's Avro schemas (Pair, in particular), so I think that we should change the tuple schemas to have stable names based on their constituent field schemas via an MD5 hash.