HAL_PX4: use hrt timer and semaphores to improve timing

this gives much more accurate microsecond delays, while also ensuring
we yield the CPU when possible
AP_InertialSensor: yield the CPU for the right time in wait_for_sample()

this improves timing performance