The earlier algorithm tried to ensure that the values for
`num_units_in_tick` and `time_scale` fit into 32 bits. However, the
result was that the numbers were only approximation — e.g. 50 fields
per second were expressed as 5368709 / 268435456 instead of 1 / 50.