Fixes periodic travis failures by removing sleeps and using synchonization structures to test synchronous- and asynchrounous functions.

The basic change is to use a latch to force the asynchronous portions from finishing. Keep in mind they return instantly. So the chain will be finished, even though not all the async work will be. However, do verify that the synchrounous work is completed.

A nice side effect here is that the `Thread.sleeps()` were removed. Wooooo!
fix observed problem with latch in tests.
add test that may show problem with openjdk latches.
address review comments (spacing, use of logging).
Merge pull request #382 from gdusbabek/fix_slow_thread_race_in_concurrent_structures_test

Fix synchronization issues with ConcurrentStructuresTest.