Windows: update loop time lazily

We call uv_update_time() whenever we think the loop time should be updated.
But we might not need to read the time after every update, and the update
operation has non-negligible cost.
So I am making uv_update_time() invalidate the loop time. The time will be
actually updated only on the first call to uv_now() after it's been
invalidated.
That's because in the previous patch we had nuked uv__time_forward, so it was sufficient to set it to 0 to mean 'invalidated'. Then we realized that we needed to bring uv__time_forward back. So we need to store the minimum value for the next readout, even while the cachec time is invalidated.