Relax conditions for updateIn to not perform edits.

The updateIn with an identity function will always result in no change. Relax this constraint to allow modifications only when `notSetValue` is not iterable and key path isn't set.
If the updater function returns `undefined`, then that's the value to be set.