Allow comparisons of Numeric and number as String

Puppet passes numbers as String to functions, but it makes more sense to
compare them as Numeric.
But sometimes Puppet passes them as the wrong type, see:
https://projects.puppetlabs.com/issues/19812
Merge branch 'pull-136' into 2.x
Merge branch '2.x' into 3.x
Merge branch '3.x' into 4.x