soap api: added wsdl-viewer

NuSoap offered a convenient, self-generated API documentation page. On
the other hand, the php-soap extension does not offer such functionality
and the wsdl's raw XML is not easy to read.

This commit adds Tomi Vanek's wsdl-viewer XSLT [1] to mantisconnect.wsdl
to offer a more user-friendly face to the XML.

[1] http://tomi.vanek.sk/index.php?page=wsdl-viewer
Temp var defined in global scope should be unset() after use

Fixes #15921
New helper_array_transpose api function

Required for issue #15774
Fix #15774: unable to simultaneously upload > 5 files
Tests: fix whitespace, comments and phpDoc
Tests: fix inclusion of TestConfig.php

This way tests can be called individually
Tests: Strings - use string API functions

Remove hardcoded copy of string_sanitize_url()

Added require_once calls for necessary API and includes. This needed a
change in TestConfig.php to add the Mantis Root directory to the include
path.
Tests: Strings - fix broken test cases (&amp; => &)

Commit c59ad8a60f316d8cda10b578280c86668838e9e9 changed the use of
ampersands in internally generated URLs
Tests: add new Helper API test script

Currently only covers helper_array_transpose() function
Tests: added function for globals declaration

MantisBT configs (defined in config_defaults_inc.php) are not
defined in the global scope when running PHPUnit. Because of this,
including 'core.php' does not work.

All 'global' configs must therefore be specifically declared as such
when API functions are needed to run tests.
Tests: improve require_mantis_core() function

New version no longer requires use of eval() to declare globals.

Also fixes a system warning caused by $g_queries_array not being
declared as global in database api.

Backport from master branch 0b53ba9fb21a77358591ad5c5a48e272e733db9f,
added workaround to avoid warnings caused by lack of require_api()
function.
Fix #15920: Missing config file causes cli scripts to fail silently

We now display an error message and die with exit code 1.