added support for arrays and user functions to new translator

updated getOperand() to support arrays/user functions (identifiers with
parentheses) and defined functions (with and without parentheses)

implemented new getParenToken() to get the operands of a token with
parentheses; for each operand for identifiers with parentheses, the
reference flag is set if operand is a identifier with or without
parentheses (really just variables and arrays)

updated expression test #3 results: only operands of identifiers with
parentheses (really just user functions) should have operands with the
reference flag (for passing variables, array elements by value), also
for define functions, arguments are pass by value only, so its operands
don't get the reference flag set

corrected the old translator routines to set the reference flag of an
identifier with parentheses token if in an assignment mode (not
expression mode); an identifier with not parentheses if not in
expression mode or as an operand of an identifier with parentheses; and
a define function with no arguments if not in expression mode