Routing Simple Requests

The first step in our web framework is to handle web requests. We set up the basic project structure, then define a Sinatra-style routing DSL allowing us to route different request paths to different blocks of code.