New module for Avro support

I'm happy to put this in commons if it should go there instead, but since it has some extra type classes, helper functions and dependencies it seemed like it might be best off self contained.