Allow keys to be nullable in `Map` and `MapIterator`

I need at least the first commit since MapIterators can be used with non-maps. The second commit is more for consistency. Note that HashMap keys are still non-null.

If this is of interest to you, I'll complete and publish my `NullableMap` in `more_collection`.
la aussi ya de la perte de perf sans doute