Change makeflow test TR_makeflow_remote_naming to check for both successful translation of filenames and for avoidance of cache conflicts.
Added functionality to fetch files from URL, modified work_queue_example to test this.
Alternative fix for name colisions between cached and uncached files.
Less protocol-breaking than f90b39f1a08.

This adds ".cached" to the end of each cached file when stored in the cache directory.
It effectively creates a separate namespace for files declared as cacheable that cannot
be impinged upon by uncached files, and vice-versa.
Adds symlink alternative to link_file_in_workspace().
If "link()" fails due to a permissions or cross-device error, we will now try to symlink the file instead.
This is a partial fix for issue #140
Check for duplicate remote filenames across both input and output files.
If duplicates are specified, throws an error and prints an error message explaining the problem.

Final fix to issue #140
Band-aid for issue #64.

This prevents a task from clogging the queue, but doesn't address what we should do if a task cannot be run by any worker, and doesn't intelligently schedule tasks that are resource hogs.
Added printf attribute to buffer_printf, and fixed corresponding type mismatches.
Added printf attribute to link_putfstring, and fixed corresponding type mismatches.
Added printf attribute to send_master_message, and fixed corresponding type mismatches.
Added printf attribute to send_worker_message, and fixed corresponding type mismatches.
Added printf attribute to buffer_format, and fixed corresponding type mismatches.
Added printf attribute to debug, and fixed corresponding type mismatches.
Define __attribute__ if !__GNUC__ or !__clang__.
Casts for varargs in pfs_*
align output of test suite with longer filenames
remove directory previously missed by sand test cleanup
use variable to delete makeflow file in test suite

Conflicts:
	makeflow/test/makeflow_dirs_test_common.sh