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.
I think it's better to encapsulate the cast inside uv__loop_time (formerly uv__time) rather than having a cast in all the sites that call uv__loop_time. Conceptually, uv__loop_time is a read operation and uv_update_time modifies the state of the loop. The fact that the time value is cached and updated at read time is an implementation detail and should not affect the function's signature. 
BTW caching is the most typical example of 'conceptual constness', for which C++ introduced the mutable keyword. That would have been appropriate here, but since we are using C we are stuck with the cast.