title: Vuex mutation error when pass Object (with objects) to component
body: <p><strong>Description(tl;dr):</strong></p>
  
  <p>When I pass "Object of Objects" from vuex's store to components via <code>v-model</code>, the model's modifications produce error. <strong>Only</strong> when "Object of Objects" passed. With any other type everything is ok.</p>
  
  <p>When i told "Object of Objects" i mean this structure: <code>{'A': {name: 'first'}, 'B': {name: 'second'}}</code>.</p>
  
  <p><strong>Workflow and structire</strong>:</p>
  
  <ul>
  <li>Structure: <code>view (page)</code> -> <code>parent</code> -> <code>child</code>;</li>
  <li>View get an <code>Object</code> from store and pass it down to components (-><code>parrent</code>-><code>child</code>);</li>
  <li>No "<code>.sync</code>" allowed, so components should't mutate object in store;</li>
  <li>After changes in <code>child</code>, <code>child</code> have to return result to <code>parent</code>, <code>parent</code> to <code>view</code>, and <code>view</code> should save it via vuex's setter;</li>
  </ul>
  
  <p><strong>The Error message</strong>:</p>
  
  <pre><code>Error when evaluating setter "value.name": Error: [vuex] Do not mutate vuex store state outside mutation handlers. (found in component: &lt;child&gt;)
  </code></pre>
  
  <p><strong>Getter (from store)</strong>:</p>
  
  <pre><code>getObjFromStore // return {'A': {name: 'first'}, 'B': {name: 'second'}}
  </code></pre>
  
  <p><strong>View (page)</strong>:</p>
  
  <pre><code>&lt;parent :value="getObjFromStore"&gt;&lt;/parent&gt;
  </code></pre>
  
  <p><strong>Parent component</strong>:</p>
  
  <pre><code>&lt;template&gt;
    &lt;div v-for="v in value"&gt;
      &lt;child :value="v"&gt;&lt;/child&gt;
    &lt;/div&gt;
  &lt;/template&gt;
  
  &lt;script&gt;
    import Child from 'components/child'
  
    export default {
      data () {
        return {}
      },
      props: {
        value: {
          type: Object
        }
      },
      components: {
        Child
      }
    }
  &lt;/script&gt;
  </code></pre>
  
  <p><strong>Child component</strong>:</p>
  
  <pre><code>&lt;template&gt;
    &lt;input type="text" v-model="value.name"&gt;
  &lt;/template&gt;
  
  &lt;script&gt;
    export default {
      data () {
        return {}
      },
      props: {
        value: {
          type: Object
        }
      }
    }
  &lt;/script&gt;
  </code></pre>
  
  <p><strong>P.S.</strong> I assume that the problem happens because Objects passed by reference. But how to fight this error?</p>