Add weekly crash counters, refactor metrics_daemon, respect opt-in in library.

BUG=5340,5814

Change-Id: I2c207055f1ebe48051193395e2dbe38d9140b025

Review URL: http://codereview.chromium.org/3171023
diff --git a/metrics/counter_mock.h b/metrics/counter_mock.h
index 701cce4..cf2a486 100644
--- a/metrics/counter_mock.h
+++ b/metrics/counter_mock.h
@@ -13,7 +13,7 @@
 
 namespace chromeos_metrics {
 
-class TaggedCounterMock : public TaggedCounterInterface {
+class TaggedCounterMock : public TaggedCounter {
  public:
   MOCK_METHOD3(Init, void(const char* filename,
                           Reporter reporter, void* reporter_handle));
@@ -21,6 +21,17 @@
   MOCK_METHOD0(Flush, void());
 };
 
+class TaggedCounterReporterMock : public TaggedCounterReporter {
+ public:
+  MOCK_METHOD5(Init, void(const char* filename,
+                          const char* histogram_name,
+                          int min,
+                          int max,
+                          int nbuckets));
+  MOCK_METHOD2(Update, void(int32 tag, int32 count));
+  MOCK_METHOD0(Flush, void());
+};
+
 class FrequencyCounterMock : public FrequencyCounter {
  public:
   MOCK_METHOD4(Init, void(const char* filename,
@@ -28,6 +39,7 @@
                           void* reporter_handle,
                           time_t cycle_duration));
   MOCK_METHOD1(Update, void(int32 count));
+  MOCK_METHOD0(FlushFinishedCycles, void());
 };
 
 }  // namespace chromeos_metrics