Took the space checking to a separate gofunc.
It gets called after each successful snapshot iif there is snapshot retention (i.e. the expired snapshots are not automatically purged). This should avoid race conditions, since the only two paths to purge() are (*should be*) mutually exclusive.
Showing with 130 additions and 91 deletions