Handle repeated option values

@JakeWharton 

Option values that are 'repeated' fields can occur multiple times:

  option (square.a).fred = 123.0;
  option (square.a).fred = 321.0;

Previously only the final value was kept; this PR promotes the value to a list on demand.