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/GuardClause: Use a guard clause instead of wrapping the code inside a conditional expression.