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.
yes you are right to remove latch, latch have to reach 0. 
and to reach 0, we must countdown latch  so this 0 checking must be in countDown operation.

in CountDownLatchService.java there is a code snippet:
```
    public void countDown(String name) {
        CountDownLatchInfo latch = latches.get(name);
        if (latch != null) {
            if (latch.countDown() == 0) {
                latches.remove(name);
            }
        }
    }
```
so we have removing part in our code still. i am also going to write all possible tests. :)

aslo maybe we can remove this code snippet:
```
        if (count < 0) {
            latches.remove(name);
            return false;
```
because removing can only happen after countdown, and probably program never use this code snippet.