Restructure map internals to pair field and dot

Many fields can be added/updated at the same time, so share a `dot`.
Using the `dot` as the key for merging therefore was incorrect.

See the test `dot_key_test` for the obvious counter example