Mimicking Sinatra by overriding constructor with one that returns
a Rack::Builder complete with middlewares.

Makes it easier to test and treat bare rack app as a normal class
Extracted Request out of RackApp so I don't have to pass the Rack::Request object around everywhere

Also removed setting of @root_directory as it was only there for testing.
Stubbing Dir.pwd instead.