/*
the (recursive) guts of _shellEscape. returns a leaf node (string)
or a possibly-empty array of arrays/leaf nodes. prunes
null and undefined by returning empty arrays
function __shellEscape (params, options) {
    if (params instanceof Escaped) {
        return params.value
    } else if (Array.isArray(params)) {
        return params.map(param => __shellEscape(param, options))
    } else if (params == null) {
        return []
    } else {
        return options.verbatim ? String(params) : shellEscape(String(params))
    }
}