Add ExpandRepeatedProto and tests

ExpandProto and ExtractProto do not currently have good support for
repeated fields in ProtoBufs: the former returns the first of the
repeated entries, while the latter simply throws an exception.
ExpandRepeatedProto fills this void by providing an explicit mechanism
for expanding repeated fields.

Given a ProtoBuf with a repeated field, it provides a list of Tuples
with one Tuple for each entry in the repeated field. The fields in the
Tuple that aren't the repeated field are identical.

There is no support for expanding multiple repeated fields at the same
time. If this is attempted, an exception is thrown.
Disallow expanding repeated fields in ExpandProto

Previously, when ExpandProto was given a repeated field, it would return
the first entry in it. This is an unexpected (and, therefore, unwelcome)
behavior. Additionally, we now have ExpandRepeatedProto to deal with
repeated fields explicitly.

Therefore, support for repeated fields in ExpandProto is being
deprecated. Now, if you try expanding them, the ExpandProto constructor
throws an IllegalArgumentException.
Merge pull request #8 from nmalkin/expand-repeated

Support expanding repeated fields