Fix defect MAGN-3728: String.Concat not working with List.Map

If we don't provide enough inputs to String.Concat, it will be compiled to an instance of ```_SingleFunctionObject```. ```_SingleFunctionObject._params``` is an array and each element is a provided input. As ```DSVarArgFunction.BuildAst()``` tries to pack all inputs into a single array, now what gets passed to ```_SingleFunctionObject._params``` is not an one-dimention array but is an  array of array, so the evaluation would fail. 

The last parameter of the constructor of ```_SingleFunctionObject``` specifies if need to pack the input back to an array or not:
```
constructor _SingleFunctionObject(fptr : function, 
                                                        argNumber: int, 
                                                        paramPositions : int[], 
                                                        params : var[]..[],
                                                       unpackParams: bool)
```

So the fix is to put inputs in a 1-D array if it doesn't get enough inputs and set ```unpackParams``` to false. 

Regression test case TestConcatStringInListMap is added.