plan some not yet implemented replaygain stuff
ability to update metadata, with some caveats

1. All metadata is able to be read, however it is flattened out into a
   simple string-based key-value dictionary.

   When metadata is written some of this meta-meta-data is lost. For
   example the BPM of an mp3 file is saved in the TBP metadata field.
   When you save, libav creates a generic key-value item with key
   "TBP" and value, for example, "130". In the new mp3 file, the audio
   stream remains pristine, but there no longer actual BPM metadata.
   There will be, however, a generic "TBP" key with the value "130".

   Programs using libav will not be able to tell the difference, but
   other programs, such as Ex Falso, will.

2. The error handling and cleanup needs some work.
metadata: fix bugs, more robust error handling