Zwave config improvements v2

Replaces PR #1488 which will be closed.
Re-based to master to keep things tidy and using revised code based on advice from Chris.

Fixes for start-up XML config deserialization for node Name, Location,
Version info(s) & Heal State text. [Heal State useful
for previous heal info when service restart].
Fixes for serialization of above xml config info at relevant stages of
load data & refreshing.

NODE: Version info needs to be refreshed manually per node still but is
stored in xml later. TODO move to init phase so auto done.

Allow Dead node to advance from Dead to Alive again (rare condition for
some zwave devices not init properly).
Display Node ID at beginning of node name if Name is set.
Improve scheduled Heal - non-listening & controller nodes should not be
added to scheduled heal list.
appVersion, protocolVersion & libraryType are all added to the node level in order to serialize it to XML for persistent storage. As I put in the commit comments at the top - its especially useful to store the device specific Hardware/Firmware versions for troubleshooting (checking node firmware versions easily etc). Might seem pointless to you but I know I've used this on a number of occasions for sensors that are asleep and only wake up every few hours/days. At least this way the values are stored once the node reports its version info.
Its still used in the "Version" CommandClass and that's called upon a "refresh" of the version info of the node.