Implement R.evolve

evolve :: { k: (v → v) } → { k: v } → { k: v }
======

For the proposal, see: ramda/ramda#648
> I see, so we are doing defensive copying.

`R.clone` is sometimes necessary, but when working within one's own garden it shouldn't be. :)

> I think that extra line of documentation would be a good call. With that I'd be ready to merge this.

Sounds good, though please squash the commits, @dtinth.