Describes a list in which the elements match ElemDcg and the
separators match SeparatorDcg. Elems is the list of elements found.
The set of patterns matched by ElemDcg and SeparatorDcg
should be disjoint. ElemDcg is called with one extra argument.
SeparatorDcg is called without any extra arguments.
On backtracking, gives back elements and their associated separators.
Always matches at least one element (without a trailing separator).