This is a complete refactor of QExPy. The content of this refactor includes:
General Cleanup:
1. Cleans up project repository structure.
2. Implement unit testing for all modules using pytest.
3. Enforces code style using pylint
4. Configure Github actions for automated testing with all versions of Python on all platforms
5. Detailed code comments, doc-strings, and type hints
6. More self-explanatory naming of variables, methods and functions
Complete Refactor:
1. Re-structure package into a collection of sub-packages
2. Modularize code to eliminate code duplication and reduce complexity of individual functions
3. Re-design class hierarchies following better OOP design principles and patterns
4. Re-implementation of all logic with more efficient, pythonic code
5. Re-design APIs to be more intuitive, simplified, and consistent.
6. Re-write package documentation with proper readthedocs integration