Added some unit tests as requested
Fixed PercentEncode StringExtension

This was also doing some special handling for \b\r\n and ignored the
issue with hex characters 00..0F (was encoding (some of) them as single
character strings %0 for example).