Fix issue with widget init macros

Previously 0 (zero) integers and reals in config.json would not override
the default values in the config structs if the default values were != 0.

This update adds some extra checks for undefined (NULL) config properties
and overrides the default values correctly even if the property is zero.