Core changes for using the previous build as reference.

These changes allow the option to appear, and provide the functionality required to always use the previous build as the reference build. However, this requires modifications to the child projects. Since the UI is determined as part of the analysis-core-project, this means that the option will appear on all project pages, even if they do not provide support for it.

I have made these changes for PMD (as that is the tool I was wanting to use these changes with), but I do not know what other projects this will affect.
Please use Java style when formatting.