Add project scaffolding

This patch adds the scaffolding recommended by many for python
projects as well as introduces dependencies for the unit tests and
ensures that all the scripts pass the flake8 linter.