Set prop and path

To go along with Lenses, I'd like to revisit the idea of pure setters.

Ping #398
worth doing `curry2(function(val, obj) {...})(val)` for code reuse?