Improve observe-sequence item matching heuristic

- If the items in an array are strings or numbers, use those as
  the id.

- If the items in an array are objects with no '_id' field, use
  the index in the array.

- In any case, if the id to be used is already present in this array,
  generate a random replacement value and print a warning.