Use tox to handle the testing and enable coverage

* Bring the testing up to snuff using tox and require 100% coverage.
* Fix flake8 failures that existed in the code base.
* Adjust travis to run tests using tox.
* Travis's PyPy has supported CFFI for a long time now.
* Use six to handle compat instead of copy/pasting things ourselves.
https://github.com/pyca/cryptography/blob/master/.travis.yml#L5-L7

On Fri Dec 05 2014 at 7:19:00 PM Donald Stufft <notifications@github.com>
wrote:

> In .travis.yml:
>
> > -script:
> > -  - py.test
> > +
> > +env:
> > +  - TOXENV=py26 CC=gcc
> > +  - TOXENV=py27 CC=gcc
> > +  - TOXENV=py32 CC=gcc
> > +  - TOXENV=py33 CC=gcc
> > +  - TOXENV=py34 CC=gcc
> > +  - TOXENV=pypy CC=gcc
> > +  - TOXENV=py26 CC=clang
> > +  - TOXENV=py27 CC=clang
> > +  - TOXENV=py32 CC=clang
> > +  - TOXENV=py33 CC=clang
> > +  - TOXENV=py34 CC=clang
> > +  - TOXENV=pypy CC=clang
>
> Um, I don't know? I'm not sure what that directive is.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/pyca/bcrypt/pull/18/files#r21412039>.
>