smurf: skyloop - Only export cleaned data on 1st iteration if required

If the supplied data has already been cleaned, we do not export cleaned
data on the first iteration, and instead use the supplied cleaned data on
subsequent iterations.
thr: Allow the app to be run in a single thread with no workers

Previously, there was no way for the user to indicate that they want the
app to be run in a single thread with no workers (setting SMURF_THREADS
to 1 used one manager thread and one worker thread). Now, setting
SMURF_THREADS to zero will no longer generate an error, but will instead
cause the app to be run in a single thread.