Add a SynchronizedCounter to util_concurrency
TEST: unit test for the SynchronizingCounter
use atomic_write in SynchronizingCounter
refactor BlockingCounter to reuse functionality of SynchronizingCounter
move SynchronizingCounter tests in front of BlockingCounter tests
FIX: proper thread destruction in SynchronizingCounter test
adapt test case for BlockingCounter
add two more test cases for BlockingCounter
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.