Eng3969

Blocking rejoin uses a single snapshot rather than n sequential snapshots.  A fairly substantial rewrite of the snapshot write planning included, needs review.