Add better support for copied files in Git diffs.

We introduced support for moved files a while back, but copied files
were never properly supported. Copied files with 100% similarity would
flat-out break.

This change introduces support for parsing the copied file info from git
diffs, storing this state in the database, and showing it in the diff
viewer (just like we show moved files). It doesn't require any schema
modifications in the database.

This is the version for 1.7.x. A separate change will be made for 2.0,
since the code has changed enough since than to warrant some slightly
different changes.
Merge branch 'release-1.7.x' into release-2.0.x