Fixes #3260: Allows puppet to manage value of smart class parameter that can be overrided

I use the nil to check if it should be skipped, I'll change this to be explicit