unix, windows: fix order of timer callback

When two timer handles have the same timeout value, callbacks should follow the order of start. `uv__is_active()` is the best to compare handles to work with it. Please review this.

This fix is requested by @saghul in  https://github.com/shigeki/libuv/commit/50d55ed3f5a363ba38c1a12efe2504049627f6fe#commitcomment-2568588 . 
The comment from Ben, https://github.com/shigeki/libuv/commit/50d55ed3f5a363ba38c1a12efe2504049627f6fe#commitcomment-1761937,  was very valuable for me to rewrite this patch but I missed it at that time. Sorry, Ben. 

[Edit] The patch is modified so as to use timer_counter