`array_functions(TYPE, NAME)' generates a `new_foo(size)' function that
allocates a new array of the given type. When compiling in C, the array
is initialized with `calloc()', which shows that the intent was to have
the array be zero-initialized. When in C++, however, the array was not
getting initialized, so it could contain random garbage after creation,
when the type was a POD type.
This change makes `new_foo(size)' create a value-initialized array when
in C++, as per the C++ standard's 5.3.4.15 that says that adding a pair
of parentheses at the end of a new-expression does that.