Minor cleanup test.py
Fixed some erroneous error handling in __exit__
Removed some dead code
Added test case
Fixed check for selected env being instance of Env (erroneously allowed EnvGroup)
 - Implemented BaseEnv class do that EnvGroup is not instance of Env
More testcases for Env/EnvGroup
More decorators tests (100% coverage)
 - Cleanup of decorators code
   - aligned decorator attributes naming with decorator names
Some cleanup to json_dump
Improved test coverage of json dump
Some json output test cleanup. Added another testcase.
Added another json output testcase.
Added json output test for compact format with non multiconf object
Major redefinition/refactoring of freeze semantics, backwards compatible (except for some error messages and output)
 - Freezing is now on attribute level, allows for access to parent/sibling attribute values in more places inside config or in __init__ methods
Allow setting 'default' value in with_statement
ConfigBuilder can now access frozen parent/sibling attributes in __init__
Fix: Don't validate on intermediate attribute freeze, validate when item is fully frozen
Guard against infinite recursion in call to user 'validate' in case of circular object references
Removed unneeded (wrong) try/finally from json_output_test
Implemented nesting_level check for json_dump to avoid dumping outer references
Fixed test func name reused
Allow ConfigBuilder with contained items (and override to copy contained items to built items)
Prefer to raise exception from with_statement suite if any, rather than exception generated in __exit__ itself if any
Implemented user defined json attribute filtering
Some cleanup of json_output module
Fixed infinite recursion when user tried to call a method/property on an object derived from _ConfigItem before calling parent __init__
 - Introduced ConfigApiException
Some cleanup
Make sure to match pop with an append before exiting freeze in builder