Handle unknown values in repeated enums (#314)
Repeated enums will be handled in a similar way to enum fields.
Unknown enums are set to None and the field is marked as unrecognized. Any changes to the field are ignored and the original value is restored when the message is serialized.
```
msg_json = '{"enum_field": "UNKNOWN"}'
msg = encoding.JsonToMessage(Message, msg_json)
msg.enum_field # None
msg.enum_field = 'VAL1'
encoding.MessageToJson(msg) # '{"enum_field": "UNKNOWN"}'
```
Unknown enums in repeated enum fields are ignored and the field is marked as unrecognized. Any changes to the field are ignored and the original value is restored when the message is serialized.
```
msg_json = '{"enum_field": ["VAL1", "UNKNOWN"]}'
msg = encoding.JsonToMessage(Message, msg_json)
msg.enum_field # ["VAL1"]
msg.enum_field = ["VAL2"]
encoding.MessageToJson(msg) # '{"enum_field": ["VAL1", "UNKNOWN"]}'
```
Fixes #2585 files changed