(PUP-1964) Handle nil class parameter value

The problem was that nil was not transformed to undef for the result
of a parameter default expression and nil was interpreted as value
missing by the 3x class/define logic.

This adds a transformation in the PopsBridge by introducing a new kind
of bridging expression. Likewise, a transformation was needed back again
to nil as the value was set in TypeCalculator when performing an
inference and symbol :undef can not be used where a String is expected.

It was also observed in PUP-1964 that the error that surfaced lacked
location information. This was caused by the transformation of
unparenthesized call, where the transformed call expression did not
get location information set.

Tests added for the two different problems.

The factory method for recording position now also checks if the
end_locateable is void of location information (which can happen
in some transformations).
(maint) Remove assignment w/o effect
Merge pull request #2509 from hlindberg/pup-1964_handle-nil-class-parameter

(PUP-1964) handle nil class parameter
Merge branch 'master' of https://github.com/puppetlabs/puppet