Fix
- **config**: handle empty config file
- **config**: fix load global_conf even if it doesn't exist
- **config/ini_config**: replace outdated _parse_ini_settings with _parse_settings
Refactor
- new config system where each config type has its own class
- **config**: add type annotation to config property
- **config**: fix wrongly type annotated functions
- **config/ini_config**: move deprecation warning into class initialization
- **config**: use add_path instead of directly assigning _path
- **all**: replace all the _settings invoke with settings.update
- **cz/customize**: remove unnecessary statement "raise NotImplementedError("Not Implemented yet")"
- **config**: move default settings back to defaults
- **config**: Make config a class and each type of config (e.g., toml, ini) a child class