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.
An interesting article where the distinction is discussed further int the comment section: http://bartoszmilewski.com/2008/11/05/who-ordered-memory-fences-on-an-x86/

I've been trying to reason about my version with atomics (https://gist.github.com/aktau/9f52f812200d8d69a5d1). I used `__ATOMIC_SEQ_CST` because anything else would likely drive me insane.

Vis-a-vis loads/stores I have this:

```
1. load denom (if-check)
2. store numer (only if if-check failed)
3. store denom (only if if-check failed)
4. load denom (for division, no order guarantees)
5. load numer (for multiplication, no order guarantees)
```

Going through this checklist for one thread setting the variables (steps 2 and 3) and another in the process of calculating the multiplier (steps 4 and 5). I'm thinking this should hold:

If we reach 4/5, then denom has been assigned (step 3). This means that we only have to make absolutely sure that step 2 happens (and is visible) before step 3.

I think that some of the default x86 memory guarantees (`Stores are not reordered with other stores.` and `Stores are not reordered with older loads.`) make this assertion true. However, for processors that don't give such lavish guarantees, the memory fences introduced by the atomic calls should be sufficient. Am I right or completely off the ball here @bnoordhuis? I know it's very tricky and that it's all too easy to think an implementation with atomics is correct when it isn't.