Make arguments consistent.
Factoring: Split get_output_file() from get_output_files().
Factored time and performance out of file types.
Factored common message pattern into recv_worker_msg_retry.
Factored generation of cached name to a single location outside of get_output_item.
Factored do_thirput out of get_output_file().
Factored get_file from get_file_or_directory.
Cleaned up get_file_or_directory to have a reduced number of failure
cases and use dynamic allocation for constructing names.
Removed sorting of received items, which was broken anyhow.
(t->output_files is a list of struct work_queue_file objects.
filename_comparator was casting each one to a string, then running strcmp,
which gives nonsensical results and a possible future segfault.)
Removed check for duplicate items on output; just keep it simple
and do exactly what the user requests.
Fixed bug in output caching: If the file was successfully received, then put its metadata into the cache table.
Fixed show-stopper in get_file_or_directory: only break out of loop on failure.
Fixed cache leak: when removing a file from the cache, use the cached name instead of the remote name.
Merge branch 'work-queue-recv-cleanup' of git://github.com/dthain/cctools into dthain-work-queue-recv-cleanup

Fixed a cache leak, memory leaks, and other problems that were revealed along the way.