Support default values in state manager, so they won't be serialized

Change-Id: I68730ff303fb5e3ed74fca172fe733598037be22
diff --git a/dev/js/src/state/manager.js b/dev/js/src/state/manager.js
index 6d7fe11..4376b27 100644
--- a/dev/js/src/state/manager.js
+++ b/dev/js/src/state/manager.js
@@ -24,6 +24,7 @@
     _init : function (element) {
       this._e = element;
       this._states = {};
+      this._defaults = {};
       this._parse(element.value);
 
       return this;
@@ -34,8 +35,6 @@
     _parse : function (value) {
       if (value === undefined || value === '')
         return;
-
-      
       
       this._states = JSON.parse('{' + value + '}');
     },
@@ -59,7 +58,7 @@
 
     // Create new state that is automatically associated
     // with the state manager
-    newState : function (name, values) {
+    newState : function (name, values, defValue) {
 
       const t = this;
       let s = stateClass.create(values);
@@ -68,11 +67,23 @@
       if (t._states[name] !== undefined) {
         s.set(t._states[name]);
       };
+
+      // Set default value
+      // TODO: It would be better to make this part
+      // of the state and serialize correctly using TOJSON()
+      if (defValue !== undefined) {
+        s.setIfNotYet(defValue);
+        t._defaults[name] = defValue;
+      };
       
       // Associate with dummy object
       s.associate({
         setState : function (value) {
-          t._states[name] = value;
+          if (t._defaults[name] !== undefined && t._defaults[name] == value) {
+            delete t._states[name];
+          } else {
+            t._states[name] = value;
+          };
           t._update();
         }
       });