Bug 908: Fix URI/URL double encoding, ensuring encoded/decoded variants are used properly (Added unit test)

Bug 908 was caused by confusing URI encoded parts (e.g. scheme-specific-part) and it's decoded variant.

This especially happened due to:
  - the fact, that the encoded and unencoded variant uses the same String type,
  - the URI/URL decoding differs, is not complete (e.g. %20 .. SPACE remains in decoded part),
  - and does not comply w/ RFC 2396 and RFC 3986 (encoding), e.g. not all RESERVED chars are encoded.

In branch 'v2.3.0_branch', we will introduce our own Uri and Uri.Encoded class
to solve above issue by replacing all URI usage w/ Uri.

- Backporting results of own Uri class introduction in branch 'v2.3.0_branch'

- Ensure the encoded URI parts are used where required, i.e. IOUtil.compose(..) etc

- TestNetIOURIReservedCharsBug908: Automated test, launching GlueGen jar file from an <i>odd pathname</i>.