added file and directory checks - the program now correctly determines if passed commands are files, directories, or executable calls for files. Prints relevant error messages and sets correct exit statuses;
wait_for_pipeline now uses an int array to wait for specific process IDs sequentially;