Use a seperate new structure for retreiving siblings.

When the model structure contains a slice of some elements,
re-using the same structure for the json decoding cause the same
backing array to be used for each decode.  Thus the decoding
will overwrite the data in previous siblings.  Instead, make a
new structure for each sibling to get the decode process to
allocate a new array.  Also, add a unit test to verify the fix.

Note, byte slices do not appear to exhibit this problem.  Slices
of byte slices do for the first slice.