Add tox env for flake8 linter

Most people know about pep8 which enforce coding style.  pyflakes
goes a step beyond by analyzing the code.

flake8 is basically a wrapper around both pep8 and pyflakes and comes
with some additional checks.  I find it very useful since you only
need to require one package to have a lot of code issues reported to you.

This patch provides a 'flake8' tox environement to easily install and
run the utility on the code base.  One simply has to:

     tox -eflake8

The env has been added to the default list of environement to have
flake8 run by default.

Configuration tweaking is done in setup.cfg [flake8] section.

The repository in its current state does not pass checks We can later
easily ensure there is no regression by adjusting Travis configuration
to run this env.

More informations about flake8: https://pypi.python.org/pypi/flake8
pep8 linting

E201 whitespace after '('
E203 whitespace before ','
E221 multiple spaces before operator
E225 missing whitespace around operator
E227 missing whitespace around bitwise or shift operator
E231 missing whitespace after ','
E251 unexpected spaces around keyword / parameter equals
W291 trailing whitespace
W293 blank line contains whitespace
E302 expected 2 blank lines, found 1
E303 too many blank lines (3)
W391 blank line at end of file
Drop semicolon at end of statement

Fix pep8: E703 statement ends with a semicolon
Merge pull request #21 from hashar/pep8-linting

Pep8 linting