Lazy diffs
Needs https://gitlab.com/gitlab-org/gitlab_git/merge_requests/65
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/10785
- Use Gitlab::Git::DiffCollection which limits the result set size. This avoids loading unnecessary data from Git/SQL into memory.
- Remove left-over Grit timeout handling code.
- Use Gitlab::Git::Count.lines to count lines in strings.
- Use more iterators.