Add python linting step to CI, add typing information and fix issues
The python scripts in this repository are not all easy to understand. By adding typing information, checked by mypy, this will improve.
I've also added linting steps for the formatting and applied the formatting as done by black and isort.
Some pylint checks are disabled for now in .pylintrc
.