Refactor project structure

This is an effort that I just started, but I wanted to open up this PR for any suggestions/comments/concerns as the process is underway.  My intent is to make the project compatible with setuptools and break the code base into separate modules. 

@mhagger : if this is something you'd prefer to lead, I understand.