Updates wait operation.

This provides a healthier and more conventional method for waiting for
the completion of the child IdClient threads.
Imports synchronized version of the IdGenerator race condition example.

This produces a lot of duplicate code, and should later be replaced
with a more elegant DI-based solution.
Merge branch 'master' of github.com:claycarpenter/flightlessflyer