Remove O(N^2) algorithm from repeated field extraction.

In messages with many values for a repeated field, `lists:reverse/1` is called many times, resulting in large amounts of garbage and an unreasonable amount of time spent in decoding. This moves the list reversal until the end of the decoding, only once per repeated field.

This issue was found when a customer did a 2I query returning ~150K results. Ideally this should make it into the "0.8.1" tag and Riak 1.4, although it primarily affects the client-side.