Avoid relying on qthreads syscall interception for chpl_task_sleep

chpl_task_sleep() was previously just a call to sleep(). This system call is
supposed to be intercepted by qthreads, and qthreads will perform
qthread_yields until the specified sleep time is up. If that doesn't happen
sleep, would cause the entire worker to sleep, preventing other tasks on the
same worker from running.

The system call interception does not seem to be working on darwin currently.
As a result any test with sleep() in it fails on darwin.  We're working with
the qthreads team to figure out what's going on but in the meantime (and
possibly longer term) we will just perform what the syscall interception is
supposed to do directly.
This doesn't look right. We start the timer once and then stop it potentially lots of times, at least if the yield comes back fast enough (which if secs is large enough, it certainly ought to). This is expressly warned against in the man page. Did the testing maybe happen to not exercise this path? It seems as though the loop body would need to start the timer, yield, then stop the timer, and then add the elapsed time to a running total to compare against "secs". At least, that's how I read the qtimer_* man pages. It's not entirely clear if the timer restarts from zero each time you call qtimer_start(), or if it just continues from where it last left off.