(maint) Rename PNilType to PUndefType
Before this commit, the type PNilType was used to represent the
Puppet 'undef' value. This was an unessesary mismatch. It is now renamed
to PUndefType.
The PNilType is not exposed to users of the Puppet Language or its APIs
so this is completely an internal refactoring/rename.