Regenerate mlab dataset with no duplicate file/directory pairs, and use
/usr/local/bin/gsutil for the path to gsutil.
generate only up to the parent directory when creating entries for the
mlab dataset.
Don't let the cache thread get cancelled while AIO is taking place.
added a bit more documentation on download sets (still WIP)
Explicit code block delimiters
Added a method for creating an empty protobuf
Added methods for creating, updating, and deleting files and directories
asynchronously on the MS (in a deferred work queue)  Only the AG may do
so, since the AG only needs to sync its specfile with the volume (but
not perform any I/O where it needs consistent data).
Allow an ms_client_network_context to be tracked via an md_download_set.
This API could use a bit of improvement, since you have to set the
download set before initializing the ms_client_network_context (which
means a caller that will NOT do this MUST zero out the structure)
Expose the md_download_set-tracking methods
Allow ms_client_multi_results to be merged, and have the
ms_client_multi_results track not only how many entries the MS returned,
but how many it processed as well.  Get rid of the "last_item" field,
which lead to off-by-one errors.
Better stat debugging in the AG disk driver
Batch update logic for the AG.  Not only will it pack multiple updates
into a single request, but also synchronize many updates in parallel.
It will perform its synchronization in stages ordered by directory depth
(i.e. create everything at depth 0, then at depth 1, etc.), allowing it
to quickly tackle large but shallow datasets.
Merge branch 'master' of https://github.com/jcnelson/syndicate