Refactor codebase
This PR achieves the following:
- restructure the codebase for better testability
- add a dedicated models.py for Concept and Property class
- Use Pydantic for representing classes
- Use Typer for CLI implementation
- Update README
- Add missing (and new) dependencies to requirements.txt
- Add a structured representation for config.yaml
- Refactor to make use of the new config YAML structure
Edited by Deepak Unni