Support expanding repeated fields

ExpandProto does not have good support for repeated fields in ProtoBufs: it just returns the first of the repeated entries. A new class, called ExpandRepeatedProto, fills this void by providing an explicit mechanism for expanding repeated fields.

There is no support for expanding multiple repeated fields at the same time. If this is attempted, an exception is thrown.

Given these changes, we have deprecated the existing support for repeated fields in ExpandProto. It now throws an exception if you try expanding them.