implement semaphore to fix blank-list bug

The bug was triggered whenever the list of cours came in after the list of
clients. retrieveAllClients() calls showList(), which returns and doesn't
display a list when there are no cours retrieved yet.

Fortunately, GWT is compiled to JavaScript and actually single-threaded,
so implementing a semaphore is trivial.