865 introduce diffs controller

This is the last part of #865. We should create a more beautiful diff view afterwards, but that's "just cosmetics" (issue 922)
Style/FileName: Use snake_case for source file names.