Refactor out multiple MaintenancePage classes.

This is a pretty big refactor which makes the code more DRY and
configurable while also allowing more formats to be easily supported.