datastructures: MutableMapping register SmartDict

To be check how we can actually use metaclasses instead of register, if useful