Maint/puppet 4/remove property shadowing

Commit aa8d0914 (in 2008) added a @shadow instance variable, ostensibly for handling cases where a type declared a property with the same name as a metaparameter. It was meant to allow the shadowed metaparameter to coexist but was not fleshed out as such. The shadowed parameter is not directly exposed in any meaningful way, and most metaparameters are not accessed in the same manner as parameters, they usually have dedicated methods for setting and retrieving those fields. In the cases where metaparameters are not accessed in a specific manner (such as the schedule metaparameter) defining a duplicate property makes Puppet crash instead of handling it, so the shadow variable doesn't actually address the duplication issue.

This commit removes all references of metaparameter shadowing from property.rb.