Moved diff code from Controller to AuditReader

... so it can be used by third party applications.