Set prop and path

To go along with Lenses, I'd like to revisit the idea of pure setters.

Ping #398
This still will call spit each time, see `R.where` for how to add a hook for the first item