Encode group particles as separate records when maxOccurs > 1

When group particles have multiple occurrences, they need to be
considered as separate blocks in order to keep:
- ordering
- structure

Previously all the group particles occurrences were compressed into
a single set of fields together with their parent elements, dropping
all elements but the last one. The effect was quite devastating as
all the previous data except the last group was lost and moreover the
group structure logic was forgotten.

Example:
(sequence of s and choice of x or y)

```
<root>
  
s1

  <x>x2</x>
  <y>3</y>
  <x>x4</x>
  <y>5</y>
</root>
```

Was (wrongly) translated into:
```
{
  “s” : “s1”,
  “x” : "x4",
  “y” : 5
}
```

After this change it is (correctly) translated into:
```
[ { “s” : “s1” },
  { “x” : “x2” },
  { “y” : 3 },
  { “x” : “x4” },
  { “y” : 5 } ]
```