Add Scotty specific middlewares

Scotty specific middlewares can access the app state in the monad wrapped by ScottyT. They can be added to the app by calling `scottyMiddleware`.

As `ScottyM` wraps the `IO` monad, which has can be accessed by WAI middlewares as well, it doesn't need such middlewares, and its interface is not changed.