Relax conditions for updateIn when it doesn't perform edits.

The `Map.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` (even if `notSetValue` is `undefined`), then that's the value to explicitly set at the key path.