Phase 2 of changes from feature/modules_integration

adds html and css files
adds constants
adds exceptions
adds modules
It seems a little strange to define the exceptions as just Exception objects with different constant strings. I know that you're not catching them right now in the application code, but I could imagine if the pattern was extended that a view may want to handle some exception codes, or that the middleware may want to return different things for different exception type (like a 404 for MISSING_STAGE or a 401 for UNAUTHORIZED_ACCESS).

With the way things are defined here, you'd have to match the strings (which is pretty horrible). Have you considered subclassing Exception so that you can make the exceptions a little more useful?