Update Add-on Store mirror to use new UX (#17228)
Follow up to #17099
Summary of the issue:
In PR #17099, the ability to set a mirror to use when accessing the Add-on Store was added.
PR #17151 built upon this, adding the ability to set a mirror for NVDA update checks.
However, it was decided that we needed a more robust way of checking the mirror URLs, and a means of protecting users from accidental changes to the URL.
These UX improvements were implemented for the NVDA update mirror, but not for the Add-on Store server mirror, so as to keep PRs single-issue.
Description of user facing changes:
The Add-on Store mirror settings now use the same UI as the NVDA update check mirror.
Description of development approach:
* Added a `responseValidator` option to `_SetURLDialog`, which defaults to always returning True.
* Added a validator for `request.Response` objects to check if they're a valid Add-on Store cache hash (JSON comprising a single non-empty string).
* Copied the implementation of NVDA update mirror to the Add-on Store page, using the cache hash validator as the `responseValidator` function.
* Made failure messages when setting a URL more descriptive.
* Updated user guide, including consolidating the description of the NVDA update check and Add-on Store server mirror dialogs into one.
Testing strategy:
* Tested that using the new dialog sets the Add-on Store server mirror as expected.
* Ran through the NVDA update mirror process and Add-on Store server mirror process, checking that context help works on all controls.
Known issues with pull request:
While not directly related to this issue, note that this work lays part of the groundwork for #17205.