Improve config_section base implementation
- New macro _config_section_init to reduce code duplication.
- New 'subsection' member of _config_section struct to keep track of
hierarchy between sections. It is now necessary to pass the parent
section as argument to the _new and _section_init functions.
- We are now able to free all subsections and the actual struct on the
base implementation, simplifying the specific implementations and
saving some lines of code.
- The same apply for the _set_defaults function, which is called for all
subsections on the base implementation.
- Protect against the case of specialized config_section implementation not
providing the function in question.
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>