Improve garbage-collection logic in the UG.  Maintain a snapshot of the old manifest, and use it to calculate the difference between the last-replicated blocks and the current set of blocks, for purposes of garbage-collection.  This is much simpler, more robust, and easier to reason about than the previous attempt of maintaining a "garbage set" of blocks.  This commit also does a small amount of refactoring/renaming in the manifest logic.