Add default 404 handling

This adds a default 404 handling and adapts the existing StaticFilesHandler behaviour to let FileNotFound errors deeper into the middleware stack, so other middlewares can match the specified route.

If all in all no middleware matched the route, the default not_found_handler (Middleware) throws a 404 Error.