Refine bench_record and bench_playback:

  - use high-precision wall timer only
  - warm caches once before measuring
  - measure independent samples, calculating statistics
  - add --verbose to control how much data we output

Also removed some unloved features from bench_record.

BUG=skia:
R=jcgregorio@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/338203002
diff --git a/bench/BenchTimer.cpp b/bench/BenchTimer.cpp
index 3617f9d..f3e8e3b 100644
--- a/bench/BenchTimer.cpp
+++ b/bench/BenchTimer.cpp
@@ -76,3 +76,19 @@
     fTruncatedCpu = fTruncatedSysTimer->endCpu() * fDurationScale;
     fTruncatedWall = fTruncatedSysTimer->endWall() * fDurationScale;
 }
+
+WallTimer::WallTimer() : fWall(-1.0), fSysTimer(new BenchSysTimer) {}
+
+WallTimer::~WallTimer() {
+    delete fSysTimer;
+}
+
+void WallTimer::start(double durationScale) {
+    fDurationScale = durationScale;
+    fSysTimer->startWall();
+}
+
+void WallTimer::end() {
+    fWall = fSysTimer->endWall() * fDurationScale;
+}
+