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
If too many local variables are present, that's usually due to legitimate design issues that should be addressed. It is probably better to drop this directive and let pylint emit the warning.