Enhancements to the upgrade UI

 - Moves upgrade ajax loader above possible error messages so it always stays visible
 - Displays each error message only once on the upgrading page

TODO:
- [ ] Create generic JS and view that all upgrade scripts can use