Synchronization with completion

Completion is fully supported in the SO3 kernel. So far, one thread may be woken up with the complete() function (which corresponds to the original semantics of the function).
I added complete_all() which wakes up all waiting threads. The function makes an atomatic reset of the associated counter (doing a reinit_completion()) during the call.
This behaviours is slightly different than in Linux where reinit_completion() must be done by the caller.