Fix vcos_semaphore_wait_timeout and add mmal_queue_timedwait

While working on our MMAL VLC plugins we found it necessary to have a mmal_queue_timedwait to avoid a racecondition in buffer queue handling.
When implementing mmal_queue_timedwait we discovered that vcos_semaphore_wait_timeout was broken (as already recognized by RaspiCam developers, see comments in their code). So this request includes a fix of vcos_semaphore_wait_timeout, which consists of two aspects:
1. use absolute timevals as required by sem_timedwait
2. handle return values correctly