Report Templates & Persistence Changes for GUI integration.

While most of the code changes I made in this commit were related to the template for the HTMLDiffReport, I'm creating a pull request because of the minor changes made to the WindowPlacementPreferences and a change in how the HTMLDiffReport is built (it now builds via a private method that is called in the constructor.) These two changes were for the benefit of GUI integration.