matroska: store segment/edition uids in a single structure

To support edition references in matroska chapters, editions need to be
remembered for each chapter and source. To facilitate easier management
of these now-paired uids, a single structure is used.
matroska: parse the requested edition for the segment reference
matroska: set the edition uid when reading a chapter reference
matroska: select the edition using the requested edition uid
matroska: refactor ordered chapter timeline building

This will need to be recursive to support chapters referencing ordered
editions in other files.
matroska: recursively search for referenced segments

When playing a Matroska file with ordered chapters, it may reference
another file by edition uid. When this edition is also ordered, it may
reference other files. When this occurs, the new segment/edition pair is
added to the list of sources to search for.
matroska: support chapter references to ordered editions

Since ordered editions can reference external files, when an ordered
chapter references another ordered edition, we have to go and figure out
what is is referencing as well.
matroska: avoid requesting the same source multiple times
matroska: use memmove when collapsing the source list down