Configuration system refactor - step 1

Configuration system refactor, according to issue 285:
- Add support for various configuration formats
- Create a more rational configuration hierarchy
- Validate the configuration values

Step 1: add new classes and relative tests