fix for high resolution timer on windows.

(merge to branch)

The CLs here
https://codereview.chromium.org/489793003
and here
https://codereview.chromium.org/395913006

In isolation look correct but taken together cause a overflow or underflow
bug. Basically the message loop was calling Time::ActivateHighResolutionTimer(false)
all the time (or very often) so the g_high_res_timer_count was underflowing
or overflowing.

Now messageloop only calls ActivateHighResolutionTimer in a balanced way.

This can make the base_unittests fail as well with
--gtest_filter=MessageLoopTest.HighResolutionTimer

BUG=153139
TEST=included, see bug for manual testing.

Review URL: https://codereview.chromium.org/541203002

Cr-Commit-Position: refs/heads/master@{#293434}
(cherry picked from commit 3365a510b17169457292bdb6144cc8b95fb7ea34)

Review URL: https://codereview.chromium.org/572823002

Cr-Commit-Position: refs/branch-heads/2125@{#353}
Cr-Branched-From: b68026d94bda36dd106a3d91a098719f952a9477-refs/heads/master@{#290040}
3 files changed