Exposes the reversion functionality of the upgrader (issue 2169). Originally it was intended to be exposed as a new script but in order to avoid the negativity of having a command devoted to undoing the upgrade and to avoid more scripts in the top-level directory, I've exposed the functionality as 2 new options in the existing upgrade script. I will update the Wiki with documentation for these new options soon.
In order to support custom return codes for quicksetup applications I've overhauled the class formerly called ApplicationReturnCode, converting the inner enum to static instances of a new class ReturnCode. This change touched lots of file in a minor way.
Also addressed here:
- Interactivity for both the upgrade and reversion operations
- Additional work needed to tie the reverter into the version issue (flag day) notification framework.
- issue 2170 - upgrader emits NoClassDefFoundError following usage