[WIP] Refactor restart reporter.

I haven't integrated this with the rest of the codebase yet.