Fixed #20156: setAuthority() flaw with "0" as host

The special case hostname "0" (zero string) triggered a
flaw in getAuthority() returning boolean false instead of
the string "0" (zero). This has been fixed.

Steps done:

- Add Test 20156
- Fixed Pear Bug #20156 in class Net_URL2 getAuthority() method
Regression test for Bug #20157
Fixed #20157: normalize() flaw with "0" as path

The special case path "0" (zero string) triggered a flaw in
normalize() replacing it with "/". This has been fixed.

Additionally, if the path was not prefixed with "/"
while there was authority, it was not automatically prefixed
with "/". This has been fixed.

Note: This is not part of URL normalization (and also missing
at other places), however convenient to fix at this time at
this place.

Steps done:

- Add Test 20157
- Fixed Pear Bug #20157: normalize() flaw with '0' as path
Regression test for Bug #20158
Fixed #20158: Fragment-only references are not resolved to non-absolute base URI

It was not possible to resolve a fragment-only reference to the
base-URI if the later was not absolute. This has been fixed.

 Steps done:

 - Add Test 20158
 - Fixed Pear Bug #20158: Fragment-only references are not resolved to non-absolute base URI
Regression test for Bug #20159
Fixed #20159: Authority not terminated by slash

When building the URL, the authority was not terminated by a slash
when the path was not starting with a slash. This has been fixed.

Steps done:

 - Add Test 20159
 - Fixed Pear Bug #20159: Authority not terminated by slash by adding
   private function _buildAuthorityAndPath() that properly puts authority
   and path together.
Fix: PHPUnit no longer relies on this constant

That's quoting Sebastian Pear Bug #17798 Aug 2010:

> PHPUnit no longer relies on this constant (at least since PHPUnit 3.4)

Therefore removing it and raising PHPUnit requirements from 3.3 to 3.4.
Reviewed: Fix @see, PHPMDFPs in Net_URL2

- Streamlined usage in file.
- PHPMD supress false positives of undetectable callback methods
- CS fix in Net_URL2::getQueryVariables()
Reviewed: Fix CS, Comment and Naming in Net_Url2Test

- Comment and assert stricness on testNormalize / provideEquivalentUrlLists
- Reviewed @see in Net_Url2Test
- Renamed method pathProvider() to providePath()
- Fixed method docblocks
Reviewed: preg_* patterns and callbacks

- Regular expression delimiters streamlined with () parenthesis
_ If case-sensitivity was only about A-Z, those were added to classes
  (everwhere)
- Applicable replace group extended (+: one or more) in
  _normalizeCallback() in  normalize()
- Superfluous "0" from "\x0" removed ("\x" is NUL in PCRE)
- Private Net_Url2::_normalizeCallback() method static removed
- Callbacks with $this, not 'self'
Reviewed: Fix CS, license text quirks in docs

The docs folder did not comply with PEAR Coding Standards.

The code has been fixed. The invalid header of the file has been
condensed.

Licensing terms have been preserved as a single file.

The text had little difference with the online reference w/o
semantical differences so that it has been streamlined to it.

The following changes were done:

1.) The names of the authors may not be used to endorse -> Neither the
name of the Richard Heyes nor the names of his contributors may be used to endorse
2.) COPYRIGHT OWNER -> COPYRIGHT HOLDER
Coverage: Test for Exception in resolve()
Coverage: Added test for magic getter and setter
Coverage: Test to inject Net_URL2 into constructor

Test that Net_URL2 accepts an instance of it's own into ctor URL
parameter.

This also tests if Net_URL2 accepts an object with __toString().
Refactoring: setAuthority() complexity and naming

- renamed variable
- lowered n-path complexity
Refactoring: resolve() complexity

- lowered n-path() complexity
New: Init Scrutinizer

Adding support for .scrutinizer.yml to gather some stats.

Also added new shields:

- Packagist version number (stable)
- Scrutinizer score
- Scrutinizer coverage
Imp: Take userinfo into account as outlined in #19684

While implementing #19684 the userinfo part was not covered even
it can contain such kind of data.

Providing such data is now possible.
Prepared 2.0.3