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
 - Display the "required" star next to project name
 - Use identical variable names

Fixes #14725
Fix config_get behavior with $g_project_override = ALL_PROJECTS

Fixes #14724, affects #14700
Fix #14721: XML Parsing Error in print_all_bug_page_word.php

Revised code so that generated page complies with xhtml 1.0 strict DTD.
added print attachment event
Added documentation and included event in events_inc
Renamed event to 'EVENT_VIEW_BUG_ATTACHMENT'
Fixed #14731: No display of selected filter values when using filter "Note By"
Fix #6809: 0005598: Using an 'Or' filter logic

Conflicts:
	config_filter_defaults_inc.php
	core/filter_api.php
	lang/strings_english.txt
	view_all_set.php
Fix #14677: Summary: developer names should be links
filter_api: replace implicit join with left join

Fixes #6809: 0005598: Using an 'Or' filter logic
Make all developer names links

Fixes #14677: Summary: developer names should be links
bug_report: allow setting the resolution and status

Fixes #14678: Allow resolving a bug when it is reported 

Conflicts:
	bug_report.php
	bug_report_page.php
Fix #14737: Date filters do not work with match type = any condition
bug_report: fix selection of default status and resolution

Fixes #14678: Allow resolving a bug when it is reported
Fix #14735: Permalink does not work when using "Match Type" 

Conflicts:
	config_filter_defaults_inc.php
	search.php
Remove invalid chars from displayed string per XML specification

Strict XHTML requires that data comply with XML 1.0 specification [1],
which only allows a subset of the UTF-8 charset.

Function string_html_specialchars() has been modified to remove from the
string to print, any character which is not in the defined range

Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] |
         [#x10000-#x10FFFF]

Fixes #14744

[1] http://www.w3.org/TR/xml/
Fix #14748: XML Parsing Error in print_all_bug_page_word.php

When printing a bug with inline image attachments, an XML parsing error
was triggered due to lack of html encoding of the image's URL.