MaintenanceMiddleware contract

Update MaintenanceMiddleware to implement the Middleware contract.
Merge pull request #3062 from jlaswell/patch-1

MaintenanceMiddleware implement Contract