Create project and class for .NET Framework version of Uri.EscapeDataString

This change creates a project to build the .NET Framework version of Uri.EscapeDataString and copies that method and supporting methods and constants into their own class.

This class contains the original .NET Framework source for Uri.GetDataString() executed in V2 quirks mode. Other than minor style changes made by Rider and changes to references to make these methods use their own versions of methods and constants, these methods are copy/pasted here unchanged from the original versions.

The one modification I did was to force the use of V2 quirks mode in s_QuirksVersion. Originally, whether V2 or V3 quirks mode was used was controlled by a compilation symbol so it was slightly unclear which was being used. However, once I tested this, it became clear that V2 quirks mode was used since V3 quirks mode escaped the '(' and ')' characters just like .NET Core does. Since we need this code to behave like .NET Framework, V2 quirks mode is what we need.

I'm leaving the original files I copied these methods from with all code commented out in case we ever need to compare or fix something in these methods from the original source.

Change-Id: I18eecc1ce72297cc8e06ffd2602ff804bf79ac1a
7 files changed