Add proper PEP8 and linting checks

Instead of using `pep8`, I've opted to use `flake8` as it does both PEP8 validation and linting. In addition, anyone else using flake8 in some form during development (like via syntastic in vim) will automatically use our config.