Cleanup PuppetResource

Various cleanup in PuppetResources. I think they improve the readability of the file avoiding creating a lot of abbreviation in code.
The second commit hides genPreferences (and the private field of Preferences), exposing the lenses only.

I don't know if there is a way to expose the lenses without writing them explicitly ?

Thanks for reviewing the changes.