Removed ReportService from RenderingController since it is not the controller's responsibility to generate reports. Changed RenderingController to use lazy yield generation of test runs just in case you're running a bajillion runs in a single report. Changed ownership semantics of the Bitmap objects that are passed around in the TestResult - now it's up to someone else to destroy them (unless the GC gets around to it). Wrote the ReportService::GenerateReport() method.