os: split timed_semaphore and timed_thread
nova: replace timed_semaphore with nova specific