use dedicated immutable mapping type for empty immutable mappings instead of DictProxy to provide the complete MutableMapping API