Immutable updates for JS Objects and Arrays