Hide file upload path on project edit page if storage is DB

The upload_file_path config option is not needed when attachments are
stored in DB, and displaying it is confusing to user.

Fixes #14700

Original patch updated to comply with coding guidelines

Signed-off-by: Damien Regad <damien.regad@merckgroup.com>
Missing project override in project edit page

This is causing the config_get() calls to return the option for the
default project instead of the one being edited, which is potentially
incorrect.

Fixes #14701
User with access to single project defaults to it, not all projects

Since 1.2, if a user has access to only one project, the project
selection box at top right isn't shown. This was causing issues as new
users accounts have 'All projects' as their default:

 - user can't report issues (no link for all projects)
 - categories displayed are prefixed with [project]

Until this commit, users had to define their (single) project as default
using preferences to work around the problem; this is no longer needed.

Function html_login_info() now sets the current project as appropriate
if user has only access to a single one, and also defines that as the
default.

The account preferences page has also been modified to only include 'All
projects' in the selection list when user has more than one project
available.

Fixes #9826, #14268
Don't send email notices for a bug to which users have no access

Prior to this, users without viewer access to a bug could potentially
receive email notifications for it. This could happen in case of
permissions changes, or if an issue is moved to another project with
different access rights.

Added an access level check to exclude users who don't have at least
VIEWER privilege to the bug.

Fixes #14704
Documentation: revised admin guide Custom Functions section

Includes a couple comments corrections in custom_function_api.php.
Last updated date not bumped when group-changing custom field

When updating a custom field via selection in view_all_bug_page.php and
subsequent submit on bug_actiongroup_page.php, the custom field and
history are properly updated, but the issue's last updated date was not
bumped.

Fixes #14706
Allow selecting any user with privileges when filtering by bug note
reporter

Fix based on patch attached by frodgers at
http://www.mantisbt.org/bugs/view.php?id=9725 .

Fixes #9725: Filter on "Note By" by a reporter 
Localisation updates from http://translatewiki.net.
XmlImportExport: Reference correct class name

The parameter of update_map() was defined as being of Class "Mapper",
but the actual class name is "ImportXml_Mapper"

Fixes #12187
Fail installation if xmlreader and xmlwriter extensions are not present

Back-ported from master 70a2d239649423c25cc8b62a83d7c7274d33a467

Fixes #11029
XmlImportExport: Fix import error "Column 'profile_id' cannot be null"

In bug_api.php BugData class, the profile_id member variable defaults to
null but the DB bug table does not allow null values, causing the error.

Defaulting the variable to 0 resolves the problem.

Fixes #12112
XmlImportExport: Allow import of inherited categories

Fixes #11114
XmlImportExport: removed obsolete comment

Since 1.1 is no longer supported, I guess we won't ever backport this...
XmlImportExport: phpdoc udpate
Cloning issues with attachments fails after upload folder changed

With attachments stored on disk, if the project's upload directory
changes and the files are moved to the new location, it is no longer
possible to clone issues.

The file_copy_attachments() function was modified to use the same logic
as elsewhere in MantisBT, i.e. rely on file_normalize_attachment_path()
to determine the attachment's path.

Fixes #14718
Force validation of upload path if file_upload_method != DATABASE

Prior to this, the upload path would not be checked if it was empty
(ie. defaulting to $g_absolute_path_default_upload_folder),
which could cause issues if that directory was missing or read-only.

Checking this early allows catching any errors before users perform
actual operations on file attachments.

Fixes #14723
Hide file upload path on project create page if storage is DB

The logic implemented in 7aa07d86f2fa721e67ffd17839c373c4d81a3fea for
manage_proj_edit_page.php also applies to manage_proj_create_page.php.

Fixes #14700
Fix inconsistent behavior of upload path field hiding

config_get() would return the file upload method for the current
project, instead of the one for the project being edited.

Use of $g_project_override for expected behavior.

Fixes #14700
Make Manage Project Create and Edit pages consistent

The following changes were made:

 - Display the fields in the same order
 - Make the fields identical length
 - replace uses of class="row-X" with helper_alternate_class() calls
 - Display the "required" star next to project name
 - Added comments
 - Use identical variable names
 - Align submit buttons the same way

Fixes #14725
Fix config_get behavior with $g_project_override = ALL_PROJECTS

Fixes #14724, affects #14700