ogg: allow streams to update metadata

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
vorbis: append data from tags together

Currently, if there are multiple 'performer' tags, the last one is the
only one which appears. Instead, join them with a semicolon.

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
vorbis: extract metadata from the middle of a stream

If a special comment packet shows up in the middle of the stream, we
should extract it out into the vorbis stream metadata dictionary.

Also, if there is metadata in the packet on the way in, it might linger
since we only add data to the dictionary causing stale metadata to be
inserted into the stream. Instead, clear it to remove any doubt about
what is new and old.

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>