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)