Launch into refactoring Website for new hooks

This rips the actual request flow logic out of website.py and moves it
to flow/request.py, with a linear flow loop remaining in website. I
modified the test client to handle the changes as well and wrote a
single test for now. I also checked it TTW.