Merge pull request #2 from Ejhfast/python

Python port, code restructuring, bug fixes
Merge pull request #3 from Ejhfast/python

Back to supporting whitelists and redirection of final outputs