Add a section on DiffX encoding rules.

Review Request #11693 — Created June 30, 2021 and submitted — Latest diff uploaded




This adds a top-level section on all the encoding rules for a DiffX
file. This covers how encodings work, how sections inherit or specify
their encodings, and what assumptions a parser can or cannot make based
on the presence of encodings on any given section.

Some other sections that previously discussed encodings now refer to
this new section, except where it's still deemed important to highlight
important information.

One big change is that section header lines are no longer encoded using
the parent section's encoding. Instead, they're encoded using plain
ASCII. This aids in parsing, allowing a parser to skip to any given
section (jumping from section to section based on each section's length
option) without having to keep track of an encoding hierarchy and having
section-specific logic for decoding that given line.

Built the docs. Checked the new Encodings section for typos and bad
links. Checked each section referencing encodings for bad links.