MediaFile: make id3v23 a constructor parameter

For #899, we need to change MediaFile's behavior (pre-write) based on whether
we're doing ID3v2.3 or not. So we need a field on the object, not a parameter
to `save()`.
Add failing test for #899