filepush: Use a condition instead of restarting a thread on skip

pause/resume is used (exclusively) to be able to skip. The contract
is that nothing is being written after "pause". Instead of stopping
the complete thread, just put the thread into a suspended mode using
a condition/mutex pair on "pause", and release it on "resume".

Starting a thread takes a whole bunch of resources, so needlessly
destroying and creating threads is really bad idea. This should
improve "skip" performance a bit, because the caller no longer needs
to wait for the filepush thread to start.

TODO: Capture the condition/mutex into a C++ class.