Generic XHR upgrade features

I'm working on reusable upgrade features that include:
 - generic upgrade process view
 - generic upgrade javascript

I'm testing this PR on two different servers and with two different production databases and dataroots that I revert after each test. So don't worry about the hands-on testing, it's been covered pretty well.

Feedback about the technical implementation would however be welcome!

- [x] provide actionable feedback in case of an error