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.
Please update the internal typedef (base.js) as well as the external externs (this file).