Added UriPermutationsTest.
Created a new set of tests that create&store or that load&assert uri permutations.
Uris are created with permutations of schemes, components, characters then methods and properties output is asserted against expected values obtained on .NET.
Changed UriPermutationsTest createMode to false.
Added methods FormatAbsolute, FormatRelative, and enum FormatFlags.
Changed Format methods to receive FormatFlags.
Added FormatFlag.HasCharactersToNormalize, which improves character decoding.
The flag is set when Iriparsing is true and the Uri contains an encoded alpha numeric, non ASCII, '-', '.' , '_' and '~'.
When the flag is set some other encoded charcaters need also to be decoded.
Improved unescape testing.
With IriParsing the presencee of encoded alpha numeric, non ASCII, '-', '.', '_' and '~' characters trigger the decoding of some other characters.
Tested permutations now include tests with and tests without those characters.
Improved reduce tests.
Reduce tests now test sequences of 1 to 3 encoded or decoded dots inside paths with or without trailing character and encoded fowardslash and backslash.
UriHelper.Format now reduces paths.