Deprecating accessing fields via magic methods

Accessing fields via magic methods __get and __set has been
deprecated.

The fields have been declared public and are unset in the
constructor so __set and __get can still kick while it is possible
to use phpdocs @deperecated tags with the field definitions.

Additionally trigger_error is used to create an error message
(either E_USER_DEPRECATED or E_USER_WARNING depending on PHP
version).

The test for this kind of access has been changed to ignore
these intended errors.

This change should be backwards compatible as the fields are
still accessible.

Additionally the example.php was fairly outdated and notes
have been added about the status of the field in use. The
correct getter has been shown where applicable.

Changelog:

* Deprecating accessing fields via magic methods:

  - authority
  - fragment
  - host
  - normalizedurl
  - password
  - path
  - port
  - query
  - queryvariables
  - scheme
  - url
  - user
  - userinfo

  Use appropriate getters and setters instead, for
  example: $url->getAuthority(); instead of: $url->authority