Made the attribute values in preference explanations clickable.
Moved the whole SurfaceGenerator implementation under Explanation project. Provided dependency injection for text format and localisation.