Changed semantics for loop_delay. sleep_time = 0 if iteration takes longer than loop delay else sleep for loop_delay - iteration_time Issue: #4276
Move log directory cleanup into a separate process, so it does not slow down the main processing

Conflicts:

	factory/glideFactoryEntry.py
	factory/glideFactoryEntryGroup.py
Move cleaner process collection as late as possible in the function

Conflicts:

	factory/glideFactoryEntryGroup.py
Advertise entry and monitoring classads each using single condor_advertise instaed of advertising them one per entry

Conflicts:

	factory/glideFactory.py
	factory/glideFactoryEntryGroup.py
	factory/glideFactoryInterface.py
Fixed the value of GlideinAllowx509_Proxy and GlideinRequirex509_Proxy from string back to bool
Do cleanup only twice an hour

Conflicts:

	factory/glideFactoryEntryGroup.py
Use 4 processes for the cleanup

Conflicts:

	factory/glideFactoryEntryGroup.py
Classad related code refactoring and changes to make multi advertizing of group classads to work with v3 protocol
Refactored and cleaned up duplicate code related to GF and GFC advertising
Fixed syntax error and missing imports
Removed duplicate code leftover from bad merge
Avoid trying to advertise if no classads are generated. Also consolidated some logging to make it easier to understand
Reduce the logging to avoid overwhelming a busy factory.
4276: Cleaner division of work for forked children

This simplifies the division of a list into N sublists (in
this case, 4).
4276: Don't handle SIGTERM for entry.doCleanup() children
Fixed the call from warn() to warning() while logging warnings
Removed the log cleanup code specific to v2. In v3 python logging module takes care of cleanup
Merge branch 'master_4276' of ssh://cdcvs.fnal.gov/cvs/projects/glideinwms into master_4276

Conflicts:
	factory/glideFactoryEntryGroup.py
Merge branch 'master_4276'