General code clean up

clean up:
- strip trailing whitespace, fold long longs, remove tabs,
- fixed typos in variable names (separator, receivedCheckIns)
- remove duplicate class declarations
- pylint code
- pep8 code
- Use python idioms (default arguments, list comprehension, all(),
  any(), if iterable)
- re-order imports
- add missing import (fnmatch)
- add missing collection methods

setup.py
- Pull requirements from files
- Pin versions hard
- use setuptools instead of distutils

Added files:
- requirements.txt
- test-requirements.txt
- pylintrc