Add some flexibility and extensibility to RawDiffChunkGenerator.
Add some flexibility and extensibility to RawDiffChunkGenerator.

`RawDiffChunkGenerator` now accepts either strings or lists of lines for
input, instead of requiring strings. When using lists of lines, we trust
that the content is already properly normalized and rendered to whatever
representative state may be wanted by the caller.

The caller can further customize behavior by changing normalization and
by overriding the logic to determine changes within a line.

This will make it easier for us to have specializations on chunk
generation behavior for specific cases.

Testing Done:
Unit tests pass.

Used some of these new capabilities in an upcoming change.

Reviewed at https://reviews.reviewboard.org/r/7122/

beol/reviewboard,chipx86/reviewboard,reviewboard/reviewboard,sgallagher/reviewboard,reviewboard/reviewboard,custode/reviewboard,sgallagher/reviewboard,bkochendorfer/reviewboard,beol/reviewboard,custode/reviewboard,chipx86/reviewboard,custode/reviewboard,bkochendorfer/reviewboard,beol/reviewboard,brennie/reviewboard,beol/reviewboard,chipx86/reviewboard,KnowNo/reviewboard,davidt/reviewboard,bkochendorfer/reviewboard,brennie/reviewboard,reviewboard/reviewboard,KnowNo/reviewboard,sgallagher/reviewboard,KnowNo/reviewboard,davidt/reviewboard,KnowNo/reviewboard,custode/reviewboard,reviewboard/reviewboard,davidt/reviewboard,davidt/reviewboard,sgallagher/reviewboard,chipx86/reviewboard,bkochendorfer/reviewboard,brennie/reviewboard,brennie/reviewboard