Multiple updates

1. Code is now flake8 compatible
2. Code is now pylint compatible except few warnings for some pylint disabled checks and FIXMes
3. Formatted all the strings to use format() for easier readability
4. Added docstrings for all methods
5. Removed unused variables
6. Removed some print statements
7. Named constants as per pylint standards
8. Updated README
:+1:

By the way, it is good to use the "as" keyword when creating an exception variable:

    except Foo as bar: