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