Generate better diff data for interdiff tests.

Review Request #8830 — Created March 20, 2017 and submitted — Latest diff uploaded

Review Board
The interdiff tests were making use of sample diff data that was mostly
incomplete. They didn't include the entirety of the inserts/deletes for
the diffs, or the trailing context. This was fine originally, but the
interdiff algorithms eventually made use of more of the data in the
diffs. Upcoming interdiff fixes need this data even more.

This backports some of the fixes from my interdiff fixing branch to
generate proper diffs. Callers now give a range for a hunk in a diff,
and get back a diff that fulfills those values properly. We can use this
in all the interdiff tests going forward.

Some of the existing diffs had ranges that assumed no trailing context,
and had to be adjusted accordingly. I've tried to test and ensure that
each call passes proper ranges now, but there may be some that we'll
want to tweak and adjust going forward to be more correct.

Unit tests pass.