Add new EUnit test and fix PULSE model

The EUnit test is freeze_close_reopen_test(), which forces an
actual old-style freeze of the keydir and then checks the sanity
of folds while frozen.

The PULSE model change is something I'm not 100% happy with,
but anytime the PULSE model has false positives, it takes a huge
amount of time to determine that it's a false alarm.  So, this
change should eliminate a rare source of false reports ... but I
hope I haven't introduced something that will also hide a real
error.

The problem comes from having a read-only proc folding a cask
and having it frozen, then the read-write proc closes & reopens
the cask and does a fold.  If the keydir has been frozen the
entire time, the PULSE model doesn't know about the freezing and
thus reports an error in fold/fold_keys results.

This model change will discover if there has ever been a fold
in progress while the 1st/read-write pid opens the cask.  If yes,
then fold/fold_keys mismatches are excused.