Add reload reason text with an error number to the reload event.

I couldn't decide whether I wanted readable messages, for easier debugging, or reason codes, for easier logs analysis, so I just did both. Opinions welcome.

Alex, several of these situations can be removed once the deprecated events are gone. So if you're planning on doing that soon, I could hold off on these changes for a bit.
Enum names should be singular.  (I just fixed this for this file in my most recent PR (`Events -> Event` and `Callbacks -> Callback`).