Add support for middlewares written as func(c context.Context, w http.ResponseWriter, r *http.Request, next web.Handler)

This should be the default way to define middlewares in Slim since this is clearly easier to write / reason about.