Switch to using `Sinatra.new` to create the dynamic Sinatra app

This is the recommended way to do this in the documentation, so I
feel more comfortable moving to it. This should help future-proof
our logic and doesn't alter the functionality.