Reports now accept the phpcsFile argument, allowing them to access the checked file directly
Cleanup is now done after reporting, so reports can use the file object if needed
Changed diff generation into a type of report, so the file no longer knows anything about the extra loops. It still knows about the fixer though. This also allows the diff to be printed to screen, or written to any file, or printed along with other reports. Looping no longer changes the original error report as well, so all other reports will continue to print as normal.