function validateNodeProperties(node, definition, properties) {
        var result = [];
        for (var prop in definition) {
            if (definition.hasOwnProperty(prop)) {
                var valid = validateNodeProperty(node, definition, prop, properties[prop]);
                if ((typeof valid) === "string") {
                    result.push(valid);
                } else if (Array.isArray(valid)) {
                    result = result.concat(valid)
                } else if(!valid) {
                    result.push(prop);
                }
            }
        }
        return result;
    }
Validate a node's properties for the given set of property definitions
@param node - the node being validated
@param definition - the node property definitions (either def.defaults or def.creds)
@param properties - the node property values to validate
@returns {array} an array of invalid properties