Day 2: Better Routing

Server now passes the response object to the router and then to the
requestHandlers. This way the handlers dont have to return anything and
can now be setup to run non-blocking functions like exec().