Better Condition variable

Standard library ConditionVariable#wait does not return any significant value, making very hard dealing with spurious wake ups.
Concurrent::Condition (inspired by Java's one) acts like standard ConditionVariable, but wait method returns a Concurrent::Condition::Result so we can know if it happened due to a wake up or a timeout.

Event#wait has been improved to manage spurious wake ups