Use __rdtsc on Windows.

This seems to be ~100x higher resolution than QueryPerformanceCounter.  AFAIK, all our Windows perf bots have constant_tsc, so we can be a bit more direct about using rdtsc directly: it'll always tick at the max CPU frequency.

Now, the question remains, what is the max CPU frequency to divide through by?  It looks like QueryPerformanceFrequency actually gives the CPU frequency in kHz, suspiciously exactly what we need to divide through to get elapsed milliseconds.  That was a freebie.

I did some before/after comparison on slow benchmarks.  Timings look the same.  Going to land this without review tonight to see what happens on the bots; happy to review carefully tomorrow.

R=mtklein@google.com
TBR=bungeman

BUG=skia:

Review URL: https://codereview.chromium.org/394363003
diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp
index 4453707..a9862c6 100644
--- a/bench/nanobench.cpp
+++ b/bench/nanobench.cpp
@@ -50,8 +50,6 @@
 
 DEFINE_string(outResultsFile, "", "If given, write results here as JSON.");
 DEFINE_bool(resetGpuContext, true, "Reset the GrContext before running each bench.");
-DEFINE_int32(maxCalibrationAttempts, 3,
-             "Try up to this many times to guess loops for a bench, or skip the bench.");
 
 
 static SkString humanize(double ms) {
@@ -95,13 +93,8 @@
 static int cpu_bench(const double overhead, Benchmark* bench, SkCanvas* canvas, double* samples) {
     // First figure out approximately how many loops of bench it takes to make overhead negligible.
     double bench_plus_overhead;
-    int round = 0;
     do {
         bench_plus_overhead = time(1, bench, canvas, NULL);
-        if (++round == FLAGS_maxCalibrationAttempts) {
-            // At some point we have to just give up.
-            return 0;
-        }
     } while (bench_plus_overhead < overhead);
 
     // Later we'll just start and stop the timer once but loop N times.
@@ -288,6 +281,8 @@
     fill_static_options(&log);
 
     const double overhead = estimate_timer_overhead();
+    SkDebugf("Timer overhead: %s\n", humanize(overhead).c_str());
+
     SkAutoTMalloc<double> samples(FLAGS_samples);
 
     if (FLAGS_runOnce) {