title: Cancel/Dismiss input in ractive despite two way binding
body: <p>I am trying to use a  couple of <code>input</code> fields for data manipulation in ractive. In a simplified version it's basically:</p>
  
  <pre><code>new Ractive({
      el: '#myID',
      template: DataTpl,
      magic: true,
      modifyArrays: true,
      data: {myJSON},
      save: function (id) {
          //some code to save my Data to CouchDB
      }
  
  const DataTpl = '{{#myJSON}}&lt;input value="{{aValue}}"&gt;'+
  '&lt;button on-click="@this.save(_id)"&gt;Save&lt;/button&gt;'+
  '&lt;button&gt;Cancel&lt;/button&gt;{{/myJSON}}';
  </code></pre>
  
  <p>Editing &amp; saving works great, but the cancel button - which is meant to dismiss any user input cannot behave as expected. When I click on cancel, the binding already changed my <code>data</code>. So it is not stored to the database, but I cannot revert to the original value and therefore it is shown wrong in the UI until reload.</p>
  
  <p>I also tried the <code>lazy: true</code>option, but that did not make any difference (I think because hitting the cancel button fires a <code>change</code>Event)...</p>