Improve memory management of factory processes. Issue: #3557

Limit the number of forks that do check_and_perform_work. This is
controlled by entry_parallel_workers in <glidein ...>. A non-zero
value sets the maximum number of entry processes forked to do the work
at a given time. A value of 0 lets the factory scale this dynamically
based on free memory in the system (not counting buffers/cached),
assuming 240 MB per worker process.  The 240 MB number was based on
the 120 MB PSS seen on the v2.6 USCD production factory times a safety
factor of 2.

Immediately receive output and clean workers once they have data
written on their pipe (the old behavior waited for all of them to
finish).

Catch the KeyError if EntryParallelWorkers is not set in the config
and set the value to zero for dynamic scaling.  (This happens if the
factory op didn't run reconfig).