Formalize rules for schema evolution.

I think we can consider relaxing this in the future (a compatible change) such as allowing reading a file with field repetition type required into a target schema that has it optional.