darwin: invoke `mach_timebase_info` only once

According to @aktau, the call to `mach_timebase_info` costs 90% of the
total execution time of `uv_hrtime()`. The result of the call is static
on all existing platforms, so there is no need in invoking it multiple
times.
@bnoordhuis you meant my commit or @aktau description? I think that this diff is correct, since it enters the `mach_timebase_info` only if both fields are observed to be `0`, there is no big deal about how many `mach_timebase_info` will be actually called.