countdownlatch trysetcount bug fix + unit test

according to javadoc, we can't set count if count is not zero.
but if we do latch.trySetCount(0) it updates count and returns false.
this souldn't happen.
I believe that the latch should be removed as soon as the count reaches zero. 

So I don't think this fix is valid because it can leak to a memory leak (latches not being deleted because the count is zero).

PS: We also need some tests that verify that the CountDownLatch is removed from the service when the count reaches zero. This is very important behaviour to have in a test.