Go lock-free for RolloverProtectedNow()

This turns a global lock acquisition with every TimeTicks::Now()
into a single 32-bit atomic load in most cases, with a 32-bit CAS
about once every 4.5 hours.

It also allows code that tracks locks (for hang detection) to
not cause a recursive loop when recording the time at which a
lock is being acquired.

BUG=652432

Review-Url: https://codereview.chromium.org/2393953003
Cr-Commit-Position: refs/heads/master@{#424495}
1 file changed