allow map[string]interface{} to respect concrete "schema" types

Hello. I want to decode into concrete types, stored in `map[string]interface{}`, so I implemented a "schema" values - when `rv` is `map[string]interface{}` and for given key in config we have a value in map, instantiate new value of that type and unify it, otherwise instantiate and unify the new value of map elem type. The keys in `rv`, not found in config are dropped.