Zen: Store notification zen policy per-user.

 - Keep a zen config per user in NoMan.
 - Add zen config for all users to xml policy storage mechanism.
 - Initialize config to default for new secondary users.
 - Re-evaluate global zen on user switch.
 - Remove some unused code in NoMan.
 - Make ZenModeHelper aware of multiple users, keep all configs,
   add to dump.
 - Log config diffs in addition to the config itself in ZenLog.

Bug: 15845915
Change-Id: Ic847451e5d111c74916def1ea0948db5a76966c9
diff --git a/services/core/java/com/android/server/notification/ZenLog.java b/services/core/java/com/android/server/notification/ZenLog.java
index 44fbd2d..c45071b 100644
--- a/services/core/java/com/android/server/notification/ZenLog.java
+++ b/services/core/java/com/android/server/notification/ZenLog.java
@@ -115,8 +115,11 @@
         append(TYPE_UNSUBSCRIBE, uri + "," + subscribeResult(provider, e));
     }
 
-    public static void traceConfig(String reason, ZenModeConfig newConfig) {
-        append(TYPE_CONFIG, reason + "," + (newConfig != null ? newConfig.toString() : null));
+    public static void traceConfig(String reason, ZenModeConfig oldConfig,
+            ZenModeConfig newConfig) {
+        append(TYPE_CONFIG, reason
+                + "," + (newConfig != null ? newConfig.toString() : null)
+                + "," + ZenModeConfig.diff(oldConfig, newConfig));
     }
 
     public static void traceDisableEffects(NotificationRecord record, String reason) {