Add flake8 linting and update requirements