Bugfix gpb:decode_msg for oneof for sub messages

In the data-driven decoder in gpb, when the same oneof sub message
appeared twice, the oneof field was overwritten instead of merged.
Merge branch 'oneof'
Prepare for 3.17.1