Updated setup.py for better submodule integration and PEP'ed everything