title: Immutable _.assign (assign with clone) from lodash underscore or other library?
body: <p>Is there an alternative method available in lodash, underscore or other library that almost behaves the same way, except that it returns a new object instead of mutating the first argument?.</p>
  
  <pre><code>var o = { 'user': 'barney' }
  var result = method(o, { 'age': 40 }, { 'user': 'fred' })
  
  // o still { 'user': 'barney' }
  // result is now { 'user': 'fred', 'age': 40 }
  </code></pre>