use two separate loops (step 3/5)

In the third step towards progress reporting, two separate loops
are used instead of one. The first loop is non-parallelized, where
we check each file for need of transcoding. If it doesn't need to be
transcoded it is tagged, if necessary. If it does need to be
transcoded its name and filesize is saved in a datastructure, but no
more processing on the file takes place until the second loop. The
progress of this loop is displayed and updated in 1 s intervals.

In the second loop, parallel processing is used to transcode the
files found in the first loop. Here, in the coming steps 4 and 5,
we will extend the 'run_on_finish' callback sub to also include
progress reporting and estimated time to finish, based on timing
and file size data.

Nothing would be gained by having the first loop similarily
parallelized - the computational overhead is far too big in
comparison to the relatively light cpu load.
Merge branch 'feature/separate_loops' into develop