Merge pull request #327 from reneme/synchronizing_counter

Add Synchronizing Counters

This adds another counter, based on atomics. It allows to block a thread until the counter reaches zero again, without having any upper bound. Furthermore I refactored the BlockingCounter, that is now based on this new SynchronizingCounter.
Move ThreadProxy template to util.h
remove legacy code
move asynchronous uploading from IoDispatcher to AbstractUploader
documentation of AbstractUploader
remove invalid assertion
adapt FileProcessor unittest
TEST: unit test for ThreadProxy template
make sure the writer thread is properly joined un AbstractUploader
remove TearDown() method (unused)
FIX: memory leak (non-virtual destructor in UploadStreamHandle)
TEST: unit test for AbstractUploader functionality
add worker thread to local uploader
use SynchronizingCounter for AbstractUploader
adapt unit tests of AbstractUploader
TEST: add unit test for basic buffer ordering
clearify callback_t in UploadStreamHandle
FIX: duplicate symbol leading to linker quirks
FIX: minor code smells
FIX: deadlock in local file upload