Parent rewriter for file history, closes #2452

Emulates git's missing --parent rewriting with --follow for files with multiple names in history.

Compared to last version of this pull request, I added changes to produce results more similar to git's own history simplification. These fixed some problems resulting in very large lane counts.
Support for directory tracing isn't added however.