4588: Improved logging for missing FE credentials

We were just throwing exceptions into FE logs when security credentials
didn't match.  Looks like we used to do better before multi-advertising,
but we didn't catch the errors very well after that.  We now emit
a warning to the logs if the gliderequest doesn't get advertised because
of missing or mismatched credentials.
4612: Enable entry-level glidein cleaning to proceed if FE-level fails

If a Frontend security class hold limit is hit,
glideFactoryLib.keepIdleGlideins calls sanitizeGlideins for each existing
frontend -- and it tells the main loop not to call sanitizeGlideins at
the entry level. If a frontend drops out, it may leave many held jobs behind.
(The behavior is non-intuitive -- if all FEs drop out for a security class,
sanitizeGlideins doesn't get called at the FE level, but it doesn't
veto the entry-level sanitizeGlideins!)

This patch only vetos the entry-level sanitizeGlideins if the FE-level
sanitize tried to do something.
4612: Improve glidein cleaning for a frontend security class

When checking to see if we need to submit work on behalf of a frontend
credential, we check the max_held limit for its frontend security class.
If he hit the limit, we called sanitizeGlideins, but only for that
particular credential.

This change calls sanitizeGlideins for the entire frontend security class.
3640: Move [un]register_sighandler to lib.pidSupport
4630: Add methods for fork and collect log cleanup

This adds support to cleanupSupport.Cleanup for forking 4 workers in the
background and waiting for them to finish.
4630: Change glideFactoryEntryGroup to use forked cleanup
4630: Make cleanup routines less synchronous

This changes the log cleanup routines to only be loosely tied to the
glideFactoryEntryGroup iteration loop. The cleanup procedure is forked
in the background, and at the end of the iteration, glideFactoryEntryGroup
reaps the PIDs for the cleanup jobs that are done.  If there are any
still remaining at the next loop invocation, it will skip starting
new ones until the old ones are reaped.
4653: Add more helpful message when getting global classad throws

If getting the globals classad throws an exception, it probably means
that Condor's not running.  Also a re-raise was added since the
factory was dying at the next step anyway (since the classad
dict was undefined if the exception was caught).
Merge branch 'v3/4588' into branch_v3_2
Merge branch 'v3/4612' into branch_v3_2
Merge branch 'v3/4630' into branch_v3_2
Merge branch 'v3/4653' into branch_v3_2