Add handler access check to mc_issue_add()

The mc_issue_add() API was missing a check to validate that specified handler has the appropriate access level.

Fixes #16993
Add handler access check to mc_issue_update()

The mc_issue_update() wasn't check if the handler has access level to handle issues.
Add can assign check to mc_issue_add()

Users who report an issue with handler set must have the access level required to assign issues.

Issue #16993
Add access check to mc_issue_get() for handler_id

Disclose the handler id only if the user has the appropriate access level to see such information.

Issue #16993
Refactor handler access check for soap api

Move the check to a shared method used by mc_issue_add() and mc_issue_update().

Issue #16993
Propagate access check soap faults to caller

Now that access check is done in its own function, the caller need to propagate the soap faults since we are not using real exceptions (unfortunately!).
Fix "Workflow Transitions" override marking

Again caused by recent regressions from 7094372255c5aa89787cc105c31c9e1f7daa649e

- There was still usage of old config options that were deprecated.
- HTML elements were generated with multiple class attributes.
- When retrieving global configs use ALL_USERS instead of null (default user).

Fixes #17658
Change 'colour' to 'color'

Renamed the variables and function names within the workflow config pages modified in this pull request.
Fix php error for undefined t_workflow variable
Fix showing of workflow transitions

The workflow transition were not being shown due to accessing the wrong variables when rendering the page.

Fixes #17658
Hide news permissions when disabled

The news related permissions should be hidden when the feature is disabled.
Fix php error in error_api
Don't update user last visited on auto-refresh

This change uses a refresh=true GET parameters on pages that auto-refresh. This way actions like the following only trigger on real user activity:

User last visited (native)
Google Analytics (plugin).

There could be other cases, but these cases demonstrate the need.

Fixes #17752
Localisation updates from https://translatewiki.net.
Fix "Delete project specific settings" for email notifications

When deleting project specific settings, the manage_config_revert action page was deleting configs for Current User / Current Project scope instead of All Users / Current Project.

Fixes #17660
mc_issue_update() email missing latest notes

The mc_issue_update() could result in updating or adding notes to the issue.  Earlier in the method the issue and issue notes are loaded and cached.  Then notes are updated.  Then email API is called which loads the issue + notes again, but this time it hits stale cache.

Fixes #17763
Fix category does not exist error

If we get into a state where a category doesn't exist then we end up in a denial of service state.
This impacts pages like My View, View Issues, and others.

We can get into this state due to several cases that we should fix.  However, there is no reason why we won't handle them like we handle unknown enumerations.

This change adds a category_exists check in category_full_name() api, and changes category_exists to populate the cache to not incur extra overhead.

Fixes #15420
Remove troubleshooting for invalid category

The code now handles this gracefully and we don't need the complex troubleshooting section.
Add check for default move category

Add a configuration check to make sure that default_category_for_moves config option points to a valid category.
Merge branch 'Issue16993_SoapHandlerCheck'