More robust node xml creation and logging

Hi,

Reason for PR:
If a node has an attribute with nil value, i.e. fqdn  XMLEscape::escape_xml throws an exception. This causes silent failure of the plugin. Also the logging is not very helpful in this event.

Solution:
This change abstracts the node xml creation and catches potential problems enabling valid xml to be returned even if a node has bad data. 

Implementation:
A node's attributes are substituted with the string "Error" in the required xml attributes. This allows Rundeck to parse the xml and the user to see that one of their nodes has bad data. Extra logging commands help with troubleshooting when this happens.