(#19514) adding servernodename variable to the compiler object

    (#19514) adding servernodename variable to the compiler object
    
    Adding a merge! method to the node object to overwrite existing client side
    facts, which is then used by the compiler to force integrate the name of the
    current node object into the client facts to give an in- scope 'servernodename'
    variable.  Without this change, there is no in- scope variable available to
    validate the identity of the node requesting a catalog.
    
    Consider hiera lookups using $::fqdn where fqdn is a fact from the agent which
    can be easily spoofed to request data for an alternative node.  Using server
    side data such as $::servernodename gives unoverridable validated data to
    do such lookups.