Fixes bug when redifining a variable in makeflow.

Make evident previous memory leak when variables where not boxed.
See also: 5b5df326e19fee6fa491711cbaff4ad5f49ea530
Makeflow gc automatic preserve and collect list

Changes to the garbage collection code:

- reference counts are kept now in the dag (struct dag_file), and
  computed as the dag is constructed/executed, independently of whether
  we are doing gc.

- d->collect_table was changed from a struct hash_table to a struct set.

- incr_file mode was renamed ref_count. Original ref_count and incr_time
  mode were eliminated. on_demand mode left unchanged.

- Variable _MAKEFLOW_COLLECT_LIST was renamed GC_COLLECT_LIST.

- Variable GC_PRESERVE_LIST was added.

- Files to be collected are computed as follows:

((((all_files - sink_files) + GC_COLLECT_LIST) - GC_PRESERVE_LIST) -
source_files)

In which sink_files are targets that are not an input file of some node,
and source_files are the files that are not the target of some node.

In summary:

- If both GC_*_LIST are empty, but nevertheless gc is activated, then
  the files collected are:

  intermediate_files = all_files - sink_files - source_files.

- GC_PRESERVE_LIST takes precedence over GC_COLLECT_LIST.

- sink_files are not collected unless they appear on GC_COLLECT_LIST.

- intermediate files are collected unless they appear on
  GC_PRESERVE_LIST.

- source_files are never collected, even if they appear on
  GC_COLLECT_LIST.
Changes reference counts after recovering log.

Fixes issue 164, in which makeflow would not collect files when
re-running the workflow with gc.
Enable workqueue-sharedfs in Makeflow.

Monitor wrapping does not seem to work, but I was able to run shrimp on
pscratch using absolute paths.
Makeflow uses absolute paths when -Twq_sharedfs

This does not work when a directory needs to be created (e.g., with the
monitor).
do_thirdput creates directory if needed

Patch per Mike suggestion.
Merge pull request #166 from btovar/wq_sharedfs

Enable workqueue-sharedfs in Makeflow.
I added two header files("dttools/src/buffer.h" and "dttools/src/md5.h") into the "PUBLIC_HEADERS"of the "dttools/src/Makefile" file. In this way, the "HOWTO: Write Code that Uses Chirp" on our website will be executed well.
Revert "Modify work_queue to create "cache" and "uncache" subdirectories to handle cacheable and uncacheable files."

This caused us to break both forwards and backwards compatibility, and we figured out a better way to achieve the same goal

This reverts commit f90b39f1a088125b6c1ea41d3dbbb42b40752dfc.

Conflicts:
	work_queue/src/work_queue_worker.c
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.