# Functions
NewChain creates a new chain of middlewares with a final handler
Last is the last Middleware in the call stack, the rest will be called in inverse order- (The last parameter is the first to be called)
Final handler is the original handler - not a middleware.
NewMiddlewareChain creates a new chain of middlewares without a final handler-This works in the same way as NewChain, but returns a Middleware instead of a http Handler.
# Structs
LogMiddleware log all the requests in the provided log.
SecurityHeadersMiddleware add recomended security headers in the http response.
UserAuthMiddleware authenticate a user.
# Interfaces
Middleware define the interface for middleware to implement.