Fix creation and removal of files

- The temporary, empty input files were not being removed.  This has been fixed
- execute_process() now explicitly uses stdin or stdout when recieving
  an empty file name instead of relying on fopen() to return NULL and
  create an error.