Improve performance for many new fields introduction in mapping

When we have many new fields keep being introduced, the immutable open map we used becomes more and more expensive because of its clone characteristics, and we use it in several places.

The usage semantics of it allows us to also use a CHM if we want to, but it would be nice to still maintain the concurrency aspects of volatile immutable map when the number of fields is sane.

Introduce a new map like data structure, that can switch internally to CHM when a certain threshold is met.

Also add a benchmark class to exploit the many new field mappings use case, which shows significant gains by using this change, to a level where mapping introduction is no longer a significant bottleneck.
thats the existing contract of settings during parsing mapping, we might get null settings (mainly coming from unit tests if memory serves). didn't want to loose that semantic, and if we make it non nullable, we can remove it, but that would be in a different change.