Updated pull request adding a setup.py

An updated pull request that adds the setup.py file as before. That is a fairly basic setup.py file but one which includes additional commands to run the flake8, pylint and coverage tools. I've also added relevant entries to the .gitignore file (for example the html report generated from the coverage tool) as well as some convenient directories to name virtual environments.