Pushing blueprints of a new setup script

Adds 2 files:
 * setup2.py: This is the new setup script. right now its mostly functionally empty, but I tried to leave plenty of comments to explain everything and get everyone on the same page
 * setup.py.unrolled: Really just an artifact from much earlier in the process, this is just setup.py but with all the function calls taken out.

This push request is just so that other people can be aware of my work and help out with it.
I ask that this pull request not be merged until setup2.py is complete, but that instead, people push their work to my branch so that it will get added to this pull request and that when we finally merge this it will replace the old script with the new one.

Additionally, if anything is unclear, just leave a comment or include me on an issue and I'll try to clear it up.