Proposed cleanups and restructuring

Based on our IRC conversation, I've cleaned up the code to match closer to what's expected in Python2 style and added the basic structure for an infinite loop that for now dies regardless of success of failure, but especially for failures.  These commits also include the changing of the shebang line to specify Python2 in the executable (most Linux distros symlink /usr/bin/python2 -> python2.7 and /usr/bin/python -> Python3 if two versions are installed), this drops the ambiguity and saves the user from unnecessary errors on startup.