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

The `Map.updateIn(...)` with an identity function will always result in no change; due to https://github.com/facebook/immutable-js/commit/335b312c3e80ed2051b62ae4f29ba34f2734d3e9.  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.

Closes https://github.com/facebook/immutable-js/issues/245