(#8778) Make '' == undef commutative in the DSL
Without this patch applied the Puppet DSL treats undef == '' as true
but '' == undef as false. This is undesirable because the equality
operator should be commutative.
This patch fixes the problem by adding an explicit check for '' == undef
in the AST. Without this patch applied, Puppet already has an explicit
check for undef == '' but not for '' == undef.
The spec tests are also updated by this patch to reflect the change.