inheritance of global defaults + codecjson support

- adhere to a policy where merging/ defaulting that is done by codec
(ie. everything involving global defaults) does not merge map
objects. that is still very possible in user space, but this ensures
that nested default objects don't pollute user settings
- added support for default configs to codec json
- added support for default configs for inner classes. such settings
should use their full class name but with periods replacing the
dollar signs
- other misc clean up