[SV 41983] Support omitting the text argument to $(file ...)

Reported by Tim Murphy <tnmurphy@gmail.com>
* function.c (func_file): Only write TEXT if it is not NULL.
* NEWS, doc/make.texi: Document the new feature
* tests/scripts/functions/file: Verify that the no-text version of
  $(file ...) works and doesn't add a newline.
* maintMakefile, various: Improve constification of the codebase.
* various: Assume ISO C89-compliant free() implementation.
Update the regression test harness to support VMS.

* config_flags_pm.com, test_make.com: set up and run the regression
test environment on VMS.
* tests/run_make_tests.pl [VMS]: Use an alternate rmdir()
implementation on VMS.
(run_make_with_options) [VMS]: Provide VMS-specific quoting and shell
invocations.
(set_more_defaults) [VMS]: Set default values when running on VMS.
* tests/test_driver.pl (vms_get_process_logicals) [VMS]: Retrieve the
proper values from %ENV on VMS.
(resetENV) [VMS]: Use it.
(toplevel) [VMS]: Fix a bug with opendir() on some logical_devices.
(compare_output) [VMS]: Convert VMS test output to a "standard" format.
(_run_command) [VMS]: Handle signals and exit codes the VMS way.
(remove_directory_tree_inner) [VMS]: Unlink all versions of the file.
* output.c (pump_from_tmp): [SV 42378] Flush the output file regularly.

Copyright-paperwork-exempt: yes
* read.c (eval): [SV 41677] Correct test for TAB vs. 8 spaces.
* arscan.c [ANDROID]: Android has no ar.h but supports archives.

Copyright-paperwork-exempt: yes