Initial State Validations, clean-up, PEP8

- Add initial state validations
- Add basic model validation: cannot be empty or None
- PEP8 cleanup
- Change double-underscore attributes to single-underscore
Package refactor and pylint cleanup

- Fixing pylint warnings led me to rethink the way I structured the
  package
- Rename simplefsm.py to fsm.py
- Remove import statements from __init__.py