The old code was all in one file and not fully Python 3 compatible.

Update the code to with with all future Python 3 versions, work in venv, move code into modules for easier maintenance.

Code has to pass pylint and Black formatter