Introduce TimedWait on condition variables using virtual time
This is a rather simple implementation that wakes up the thread multiple times. I have another implementation lying around that uses the virtual time Timers, but it's still not working correctly and it's rather ugly and complicated (passing pointers to locked unique_locks around is nothing that boost really likes, but it's needed because of timed_wait's signature and the timeserver architecture). Which leads me to suggesting this solution, even if it is less precise and wakes up the thread more than once. Should be easier to maintain in the long run.