Persistence

This pull includes the completion of the user preferences classes with changes so that the window is now set appropriately inside of the screen, a default action of centering the window on screen, and support for multiple reference paths provided by the user. This also includes a simple implementation of the DiffReport with an HTML output defined. The HTML output needs to be more thoroughly implemented with styling, and the test for it could be more mature as well.