* Major refactoring and optimisation.
* Removed redundant code.
* Removed caching for --chat conversations.
* Fixing mypy typing.
* Printer class to handle LLM output formatting.
* Spinner and better handling when DISABLE_STREAMING is True.
* Implementing custom roles.
* Implementing system role messages.
* Small stdin change with new lines at the end.
* Small option name fix --list-chats.
* Refactoring module imports.
* Adding tests for roles.
* pyproject.toml
* sdist and bdist specific files.
* CONTRIBUITNG.md.
* New linters and CI/CD.
* Mypy stricted types.
* Shell scripts to run linters and tests.
* Native $SHELL command execution instead of default /bin/sh.
* Added dependency pyreadline3 for Windows systems.
* Fixed a bug when sgpt couldn't recognize powershell or cmd on Windows.
* Better integration with powershell and cmd on Windows.