refs #100758, initial store of source files, make process not yet automatic
refs #100785, added refactored version of ccn_sync.c here
refs #100785, moved sync.h and ccn_sync.c here, adapted them to new facored sync
refs #100785, changed sync.h to use a closure to allow for client private data, renamed ccn_sync.c to sync_api.c, changed sync_api.c to track sync.h changes, added to notes.txt
Refs #100785  Construct a makefile for sync_exp.  Remove sync bits from libccn.
Refs #100785  Add missing return from main, use correct license, remove obsolete build notes.
Refs #100785  Fix compilation warnings.
Ref #100785  spaces, not tabs
refs #100785  Fix segfault is CCNS_DEBUG is unset.
Refs #100785  Fill some details into notes.txt; update gitignore.
Refs #100785  Cleaned branch for sync refactoring

- Corrected issue number in commit messages. 100785 was too similar to 100758.
- Removed files from the history that should not have been committed in the first place.
- Updated dependencies

The relevant portion of Russ's TODO follows here:

The refactored Sync code appears to be working, although the refactoring is incomplete.  Here's what has been done:

1. In a new directory (sync_exp), the Sync code now uses an object style interface (called sync_depends.h) to connect with Repo (or any other client).  This all compiles, and has been partly tested.

2. In sync_exp, a new module called sync_diff contains the algorithms for tree comparison and update.  The comparison code uses a callback to yield names that are different (and to note the end of the comparison), and a callback to fetch nodes that are missing.  The update code uses a callback to note the end of the update.

3.  In sync_exp, a new version of collection tracking has been written to use the new interfaces.  This is called sync_tracx, and appears to be working, as of Tuesday morning.  This should be made into a module as well.

4.  The ccn_sync.c and sync.h files have been moved to sync_exp.  Some renaming may be needed.  The ccn_sync.c files has been modified for the new refacoring.

Here's what needs to be done (not in order):

1.  Repo needs to call to Sync using the object interface.

2.  The update code needs to be made more efficient.  It does not use existing nodes as much as it could.

3.  The code for everything below SyncActions.c needs to be put into the CCN library, although it might be desirable to split the ccn library into the parts that support sync.h and the parts that do not.

4.  The code for SyncActions needs to call into sync_diff.  It currently includes the old spaghetti code.
Refs #100785 Restore typedef for callback procedure in sync_name_closure.  Fix indentation.
Refs #100785 Use ccns_ instead of sync_ for ..._name_closure, as we did for ccns_slice etc.
Refs #100804 Register a common prefix to speed up the test setup for NameEnumeratorTestRepo

Also reduce the interthread communications.
add code to delete slices created during the test after the test runs.  refs #100809
Refs #100810 Free storage previously leaked in SyncFreeBase()
Refs #100810 Free storage previously leaked in ccn_destroy()
Refs #100810 Add finalization for enum_state and accession table.  Clean up r_store_forget_content().
Refs #100810 Squash leakage of charbufs when MakeNodeFromNames() finds an existing node instead of making a new one.
Refs #100810 Squash leak in r_proto_write_checked() when content is not present.