Introduce OuterMiddlewares

They are optional middlewares that wrap all go-json-rest internal middlewares.
Main use cases are additional logging and reporting.