Always use byte strings and don't inherit encodings for diff content.
Review Request #11717 — Created July 20, 2021 and submitted
Diff sections are no longer decoded to Unicode strings if an encoding is
specified. Instead, they're always represented as byte strings. This is
more consistent for consumers to work with, and gives them the choice
as to whether they want to use the byte string as-is (such as when
writing to disk or a stream) or whether they want to decode it
On the writing end, encodings were still being inherited, which could
end up causing the wrong encoding to be set. Now, diff sections are set
to not inherit the encodings of a parent section.
Unit tests pass.